如何获得hidden_field验证时,对Rails 3
问题描述:
我在的form_for,在那里我有它设置这样有一个隐藏字段无法工作:如何获得hidden_field验证时,对Rails 3
= f.hidden_field :building_id, :value => @building
凡@building在控制器设置在新动作:
@building = params[:building][:building_id]
如果验证失败,则创建行动得到这一行:
format.html { render action: "new" }
和页面呈现,hidden_field没有得到它的价值。
根据答案,这question之一,它看起来像也许我应该有这条线在我的form_for:
= f.hidden_field :building_id, params[:building][building_id]
,但我得到一个错误,当我这样做。我究竟做错了什么?
答
这是因为在发生验证错误后加载页面时不再设置params[:building][:building_id]
,因为它现在存储在params[:building_id]
中。像@building = params[:building_id] || params[:building][:building_id]
应该很好。
正确的主意!我必须在控制器的create操作中设置参数,例如@building = [: [:building_id]的单数版本。 – John 2011-12-29 01:38:31
对不起,是不是在考虑它已经设置为从表单调用,而不仅仅是hidden_field_tag。 – 2011-12-29 01:59:58