轨从哈希创建表单标签的缺省值
问题描述:
IAM试图保存表单的当前状态的sessionhash(阿贾克斯),并重新它后pagerefresh奥德重新browserwindow:轨从哈希创建表单标签的缺省值
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 %>
次要的问题:我听说过的钢轨-的方式来对待哈希像对象,但我忘了。任何人都可以告诉我方向吗?
答
怎么样建立一个默认状态@last_state
def new
@last_state = session[:last_order] || {product_id: 0}
...
end