我试图将表单的当前状态保存在 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 %>
第二个问题:我听说过一种将哈希视为对象的方法,但我忘记了。谁能告诉我方向?