On 8 March 2011 16:07, A. Mcbomb <[email protected]> wrote:
> I am passing several params from my view but need to put some logic
> behind one of them. I pass a value of either "Yes" or "No" from my view
> to the controller with the param known as "completed" under "update".
>
> Here is my controller and view which works fine:
>
> view->
>
> <%= form_tag :action => 'update', :id => @project %>
> <% form_for :project do |f| -%>
> <table>
> <tr>
> <td><label for= "name">Project Name</label>
> <%= f.text_field :name %>
> </td><td>
> <%= f.label :completed %>
> <%= f.select(:completed, ["No", "Yes"] )%>
> </td></tr></table>
> <%= submit_tag 'Submit' %>
> <%= form_tag %>
> <% end -%>
>
> controller->
>
> def update
>  @project = Project.find(params[:id])
>  if @project.update_attributes(params[:project])
>   redirect_to :action => 'index', :id => @project
>  else
>  render :action => 'edit'
>  end
> end
>
> I would like to add some logic to do something if the "completed" param
> is equal to "Yes". Here is my attempt but it doesn't work:
>
> def update
>  @project = Project.find(params[:id])
>  if @project.update_attributes(params[:project])
>    if params[:completed] == "Yes" do "something here" end

When you say it does not work what do you mean?  If it is just a
syntax error that is because you have not got the syntax for 'if'
right, it should be
if params[:completed] == "Yes"
  .....
end
Note however that you are doing it *after* the record is saved, which
happens in update_attributes.  If you are trying to do it before the
save then move it up to before the update.

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