0

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

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

那是容易的部分。

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 %>

第二个问题:我听说过一种将哈希视为对象的方法,但我忘记了。谁能告诉我方向?

4

1 回答 1

0

为@last_state 设置默认状态怎么样

def new
  @last_state = session[:last_order] || {product_id: 0}
  ...
end
于 2013-04-25T21:06:58.197 回答