I\'ve created a form
<%= form_for [current_user,@product,@bid] do |f| %>
<%= f.number_field :bid_amount %>
<%= f.n
user740584 is right, the user should not be able to edit the product_id.
If you really do need it on your form you can use a
<%= f.hidden_field :product_id %>
Just add @product.id to your field.
In this example <%= f.number_field :product_id, @product.id %>
I'm assuming bid belongs to product. Therefore product_id should not be on form at all for the user to see. As an id number it's meaningless and it must be set to the correct product for all bids.
The action on the form will automatically mean it gets set correctly in the database.
Just:
<p><%= f.number_field :product_id, :value => @product.id %></p>
<p><%= f.number_field :product_id, :value => @product.id %></p>
more details on: NumberField