在控制器的标准“索引”方法中,我在params散列中设置了一些值,以便在视图中使用它,如果它没有初始化,在其他情况下什么都不做。
def index
params[:my_value] ||= {}
end
当我使用include时?视图中params [:my_value]的方法,评估nil.include时出错?
如果params [:my_value]不能为零,为什么会出现这样的错误。如果它为零,则应使用{}初始化其值,这就是|| =运算符所做的。这可能是什么问题?
答案 0 :(得分:0)
解决方案是在合并方法中。原来那个
a = b.merge(a)
和
a.merge(b) {|key, v1, v2| v1 }
做不同的事情,在第一种情况下(这是错误的)nil出现在某处。我还没弄明白为什么会这样,因为merge方法总是返回一个哈希值,当我用第二个替换第一个变量时,一切都还可以。所以我没有看到任何问题...
答案 1 :(得分:0)
rails参数存在,直到请求流程完成
您可以访问将要呈现的内部视图页面中的params
,但如果您正在重新指向控制器操作中的另一个页面,则它将无法使用,因为它会中断请求流。