rails从哈希创建form-tags默认值

时间:2013-04-25 20:34:57

标签: ruby-on-rails ruby forms hash

iam尝试在sessionhash中保存表单的当前状态(使用ajax),并在页面刷新后重新打开浏览器窗口重新显示:

def save
  session[:last_order] = params.dup
end
def new
  @last_state = session[:last_order] || {}
  ...
end

这很容易。

问题是,当iam在new操作上显示表单时,@last_state可能是一个空哈希,那么我如何处理表单标签而不检查密钥的存在每个表单标签创建?

<%= radio_button_tag 'product_id', product.id, @last_state.has_key? 'product_id' && @last_state['product_id'] == product.id %>

我只想写一个这样的简单行:

<%= radio_button_tag 'product_id', product.id, @last_state['product_id'] == product.id %>

甚至更好:

<%= radio_button_tag 'product_id', product.id, @last_state.product_id == product.id %>

第二个问题:我听说有一种轨道来处理像物体一样的哈希,但我忘记了。谁能告诉我方向?

1 个答案:

答案 0 :(得分:0)

如何为@last_state设置默认状态

def new
  @last_state = session[:last_order] || {product_id: 0}
  ...
end