轨从哈希创建表单标签的缺省值

问题描述:

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