почему мой remote_form_tag с: определено действие не публикует действие? - PullRequest
0 голосов
/ 26 октября 2010

Это то, что я использовал с remote_form_tag:

<% form_remote_tag(:url => {:controller => '/companies', :action => 'update'},
      :update => 'tags') do  %>
      <%= text_field :company, :tag_list %> 
       <%= submit_tag 'Save' %> 
  <% end %>

Это в Company.view, где Company - это модель, для которой действует activ_as_taggable_on.

Я ожидаючерез ajax публикуется сообщение для компаний / 10 / update

Но вместо этого публикуется сообщение:

http://localhost:3000/companies/10

и ответ:

No action responded to 10. Actions: create, destroy, edit, email_this_week, index, new, show, and update

Это метод обновления в CompaniesController:

 def update
    @company = Company.find(params[:id])
    if request.xhr?
      # add the given tag to the company
      @company.tags << params[:company][:taglist]
      @company.save
      render :partial => 'tags'
    else
      if @company.update_attributes(params[:company])
        flash[:notice] = "Successfully updated company."
        redirect_to @company
      else
        render :action => 'edit'
      end
    end
  end

Справка ...?

     DELETE /companies/:company_id/contacts/:id(.:forma
   {:controller=>"contacts", :action=>"destroy"}
            companies GET    /companies(.:format)
   {:controller=>"companies", :action=>"index"}
                      POST   /companies(.:format)
   {:controller=>"companies", :action=>"create"}
          new_company GET    /companies/new(.:format)
   {:controller=>"companies", :action=>"new"}
         edit_company GET    /companies/:id/edit(.:format)
   {:controller=>"companies", :action=>"edit"}
              company GET    /companies/:id(.:format)
   {:controller=>"companies", :action=>"show"}
                      PUT    /companies/:id(.:format)
   {:controller=>"companies", :action=>"update"}
                      DELETE /companies/:id(.:format)
   {:controller=>"companies", :action=>"destroy"}

1 Ответ

0 голосов
/ 26 октября 2010

Когда вы обновляете ресурс типа Company с идентификатором 10, Rails будет использовать маршрут RESTful:

PUT /companies/10

Метод PUT учитывается при маршрутизации вашего запроса. Взято с ваших маршрутов:

PUT    /companies/:id(.:format)
  {:controller=>"companies", :action=>"update"}

Это правильное поведение для Rails. Просто внедрите метод update в свой CompaniesController.

Если вам требуется дополнительная информация о маршрутах RESTful в Rails, проверьте этот документ: http://guides.rubyonrails.org/routing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...