Class: SubjectsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- SubjectsController
- Defined in:
- app/controllers/subjects_controller.rb
Instance Method Summary collapse
-
#create ⇒ Object
POST /subjects POST /subjects.json.
-
#destroy ⇒ Object
DELETE /subjects/1 DELETE /subjects/1.json.
-
#edit ⇒ Object
GET /subjects/1/edit.
-
#index ⇒ Object
GET /subjects GET /subjects.json.
-
#new ⇒ Object
GET /subjects/new.
-
#show ⇒ Object
GET /subjects/1 GET /subjects/1.json.
-
#update ⇒ Object
PUT /subjects/1 PUT /subjects/1.json.
Instance Method Details
#create ⇒ Object
POST /subjects POST /subjects.json
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'app/controllers/subjects_controller.rb', line 91 def create @subject = Subject.new(subject_params) respond_to do |format| if @subject.save format.html { redirect_to @subject, notice: t('controller.successfully_created', model: t('activerecord.models.subject')) } format.json { render json: @subject, status: :created, location: @subject } else format.html { render action: "new" } format.json { render json: @subject.errors, status: :unprocessable_entity } end end end |
#destroy ⇒ Object
DELETE /subjects/1 DELETE /subjects/1.json
123 124 125 126 127 128 129 130 |
# File 'app/controllers/subjects_controller.rb', line 123 def destroy @subject.destroy respond_to do |format| format.html { redirect_to subjects_url, notice: t('controller.successfully_deleted', model: t('activerecord.models.subject')) } format.json { head :no_content } end end |
#edit ⇒ Object
GET /subjects/1/edit
86 87 |
# File 'app/controllers/subjects_controller.rb', line 86 def edit end |
#index ⇒ Object
GET /subjects GET /subjects.json
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/controllers/subjects_controller.rb', line 9 def index sort = {sort_by: 'created_at', order: 'desc'} case params[:sort_by] when 'name' sort[:sort_by] = 'term' end sort[:order] = 'asc' if params[:order] == 'asc' search = Subject.search query = params[:query].to_s.strip unless query.blank? @query = query.dup query = query.gsub(' ', ' ') search.build do fulltext query end end search.build do order_by sort[:sort_by], sort[:order] end role = current_user.try(:role) || Role.default_role search.build do with(:required_role_id).less_than_or_equal_to role.id end page = params[:page] || 1 search.query.paginate(page.to_i, Subject.default_per_page) @subjects = search.execute!.results session[:params] = {} unless session[:params] session[:params][:subject] = params flash[:page_info] = {page: page, query: query} respond_to do |format| format.html # index.html.erb format.json { render json: @subjects } format.rss format.atom end end |
#new ⇒ Object
GET /subjects/new
76 77 78 79 80 81 82 83 |
# File 'app/controllers/subjects_controller.rb', line 76 def new @subject = Subject.new respond_to do |format| format.html # new.html.erb format.json { render json: @subject } end end |
#show ⇒ Object
GET /subjects/1 GET /subjects/1.json
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/subjects_controller.rb', line 54 def show if params[:term] subject = Subject.find_by(term: params[:term]) redirected_to subject return end search = Sunspot.new_search(Manifestation) subject = @subject search.build do with(:subject_ids).equal_to subject.id if subject end page = params[:work_page] || 1 search.query.paginate(page.to_i, Manifestation.default_per_page) respond_to do |format| format.html # show.html.erb format.json { render json: @subject } end end |
#update ⇒ Object
PUT /subjects/1 PUT /subjects/1.json
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/controllers/subjects_controller.rb', line 108 def update respond_to do |format| if @subject.update_attributes(subject_params) format.html { redirect_to @subject, notice: t('controller.successfully_updated', model: t('activerecord.models.subject')) } format.json { head :no_content } else format.html { render action: "edit" } format.json { render json: @subject.errors, status: :unprocessable_entity } end end end |