View 文本\字段\带有预填充文本和自定义参数的标记

View 文本\字段\带有预填充文本和自定义参数的标记,view,ruby-on-rails-3.1,View,Ruby On Rails 3.1,我试图在我的一个观点中实现这一点: <%= text_field_tag :sources, "Test", params[:sources] %> 但我得到了nil:NilClass的未定义方法“stringify_keys”。代码 <%= text_field_tag :sources, "Test" %> 工作正常,并用“Test”预填充框(但不能正确通过参数),而代码 <%= text_field_tag :sources, params[:so

我试图在我的一个观点中实现这一点:

<%= text_field_tag :sources, "Test", params[:sources] %>

但我得到了nil:NilClass的未定义方法“stringify_keys”。代码

<%= text_field_tag :sources, "Test" %>

工作正常,并用“Test”预填充框(但不能正确通过参数),而代码

<%= text_field_tag :sources, params[:sources] %>

正确地通过参数,但在我需要的地方没有文本“Test”


有人知道语法或解决方法吗?

您要查找的语法是:

文本区域标签(名称,内容=nil,选项={})

代码的问题是,给定三个参数
text\u field\u tag
期望第三个参数是散列,但
params[:sources]
给出的是
nil
。您是否希望它具有不同的值?
params
设置在哪里,它包含什么

如果您知道
params[:sources]
有时会包含散列,而其他时间为
nil
(即未设置),则可以使用例如:

<%= text_field_tag :sources, "Test", params[:sources] || {} %>


params[:sources]|{}
将在
params[:sources]
错误时(例如
nil
)计算为空哈希(
{}
),这将避免错误。

谢谢,我没有按照您的建议传递params。我首先在控制器中设置它,然后将视图显示为,效果非常好