我正试图在我的一个观点中使用它:
<%= text_field_tag :sources, "Test", params[:sources] %>
但是我为nil得到了未定义的方法'stringify_keys':NilClass。代码
<%= text_field_tag :sources, "Test" %>
工作正常并使用“Test”预先填充框(但不能正确传递params),而代码
<%= text_field_tag :sources, params[:sources] %>
正确传递params但没有我需要的文本“Test”。
有没有人知道语法或解决方法?
答案 0 :(得分:2)
您正在寻找的语法是documented:
text_area_tag (name,content = nil,options = {})
您的代码存在的问题是,给定三个参数text_field_tag
期望第三个参数为哈希,但params[:sources]
正在提供nil
。你期望它能保持不同的价值吗? params
设置在哪里,它包含什么?
如果您知道params[:sources]
有时会包含哈希,而其他时间为nil
(即未设置),那么您可以使用例如:
<%= text_field_tag :sources, "Test", params[:sources] || {} %>
只要params[:sources] || {}
是假的(例如{}
), params[:sources]
将评估为空哈希(nil
),这样可以避免错误。