Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails3 form_for hidden_field undefined method 'merge'

My attempt to place a hidden_field within a form_for is crashing within cucumber on an ActionView helper error. Something also about FixNum which escapes me since I haven't dug through the source code. My prices_controller shows this:

 @price = Price.new
  @commodity = Commodity.find(params[:id])

I want to make the link between price and commodity with this hidden_field:

 <%= form_for (@price), :url => prices_path  do |f| %>
  <% f.hidden_field :commodity_id, @commodity.id %>
 .
 .
 <div class="actions">
 <%= f.submit "Submit" %>
   </div>

Looked at the form_for api and the above should work. Reading other replies on stackoveflow, I have put the hidden_field in its own div within the form, added a Hidden_field_tag, and placed it within the actions div before the submit line. Looking at the merge msg, I guess it doesn't like something about the line, but it appears OK to me. The commodity_id field is the match field, sam

like image 911
sam452 Avatar asked Feb 14 '12 15:02

sam452


1 Answers

If you could paste the error message itself, and the relevant lines of the trace, it could help us. Right now, the only thing I see is that the ERB tag before f.hidden_field should be <%=, and I'm not sure about it since I don't use ERB. For what it's worth, merge is usually used with Hash objects. Maybe it can point you in the right direction

EDIT Ok I get it. You have to write f.hidden_field :commodity_id, :value => @commodity.id.

like image 119
ksol Avatar answered Dec 03 '22 07:12

ksol