Jason Milam
Jason Milam

Reputation: 111

Editing a single form field with rails

I have a form field in a view that is separate from my initial form. I want the person using the application to be able to edit a single field without having to pull up the entire form. My code is as follows

     <%= form_for :user, :url => {:controller => 'users', :action => 'update' } do |f| %>
          <%= f.text_field :barcode %>
          <%= submit_tag 'Register' %>
     <% end %>

When trying to submit the changes to the specified form field I receive an error on the create method I believe. It redirects me to the user controller with the proper id but gives me the following error.

 Unknown action
 The action '1' could not be found for UsersController

I have tried changing the method from update to create, but then it brings up the blank form, I just want to be able to edit the specified field without having to re-create the form and get the error. Any ideas?

Upvotes: 1

Views: 1215

Answers (2)

gabrielhilal
gabrielhilal

Reputation: 10769

 <%= form_for(@user), :url => url_for(:controller => 'users', :action => 'update') do |f| %>
     <%= f.text_field :barcode %>
     <%= f.submit, 'Register' %>
 <% end %>

It should work now...

Upvotes: 1

Silvio Relli
Silvio Relli

Reputation: 399

You are not passing the user object to the form. Try also using the path helper generated by the routes:

     <%= form_for @user, :url => user_path(@user) do |f| %>

Upvotes: 4

Related Questions