Question

est ce que je l'ai utilisé avec remote_form_tag:

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

Ceci est un Company.view, où la société est un modèle qui est acts_as_taggable_on activé.

Mon attente est que, via ajax, un poste est faite aux entreprises / 10 / mise à jour

Mais, au contraire, ce qui est affiché est:

http://localhost:3000/companies/10

et la réponse est:

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

Ceci est la méthode de mise à jour 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

Aide ...?

     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"}
Était-ce utile?

La solution

Lorsque vous mettez à jour une ressource comme société avec ID 10, Rails utilisera la route RESTful:

PUT /companies/10

La méthode PUT est prise en compte lors de l'acheminement de votre demande. Extrait de vos itinéraires:

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

Ce comportement est correct pour Rails. Il suffit de mettre en œuvre la méthode de update dans votre CompaniesController.

Si vous désirez plus d'informations sur les itinéraires RESTful dans Rails, vérifiez sur ce document: http: // guides .rubyonrails.org / routing.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top