【问题标题】:How to get hidden_field to work when validation fails in Rails 3在 Rails 3 中验证失败时如何让 hidden_​​field 工作
【发布时间】:2012-01-29 13:58:54
【问题描述】:

我在 form_for 中有一个隐藏字段,我将其设置如下:

  = 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]

但是当我这样做时我得到一个错误。我做错了什么?

【问题讨论】:

    标签: ruby-on-rails forms validation


    【解决方案1】:

    这是因为在发生验证错误后加载页面时不再设置params[:building][:building_id],因为它现在存储在params[:building_id] 中。 @building = params[:building_id] || params[:building][:building_id] 之类的东西应该可以正常工作。

    【讨论】:

    • 正确的想法!我必须在控制器的创建操作中设置参数,例如@building = [:][:building_id]。
    • 抱歉,是的,没有考虑到它已经设置为从表单调用,而不仅仅是一个 hidden_​​field_tag。
    猜你喜欢
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    相关资源
    最近更新 更多