On 29 March 2010 19:00, Stephen None <[email protected]> wrote:
> So I would like to be able to update a record without having to load the
> edit page.  Lets use checking out a book as an example.  From the front
> page of my application I would like to be able to have a form field
> where I can enter a record id and select one of a couple of check boxes
> and then hit submit which will update the associated record with the
> action selected by the check box (check out, check in, etc).  I am
> assuming I need to use a form_tag but I am not sure how to go about
> writing the controller and I am assuming I will need to do some custom
> routing.
>
>  def update
>
>   �...@barcode = params[:barcode]
>   �...@checkout = params[:checkout]
>
>   �...@book = Book.find(:first, :conditions => {:barcode => [...@barcode]})
>
>   �[email protected]_attributes(params[:book])
>
>  end

Just use the same technique as on the edit page but miss out the
fields that you do not wish to change.  Then submit to the existing
update action, you do not need to change it as update_attributes only
changes the fields that are provided, and leaves the others unchanged
(I think that is correct, someone will correct me if I am wrong).
Depending on how similar the required view is to the normal edit view
you may even be able to use the same one, just hiding the fields you
do not want.

By the way form_for is the conventional way now, rather than form_tag.
 Your edit view will likely be using that unless you picked up the
code from an old tutorial or book.

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to