【问题标题】:text_field_tag with pre-filled text and custom params带有预填充文本和自定义参数的 text_field_tag
【发布时间】:2012-01-26 16:31:47
【问题描述】:

我正试图让它在我的一种观点中发挥作用:

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

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

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

工作正常并用“测试”预填充框(但没有正确传递参数),而代码

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

正确传递参数,但在我需要的地方没有“测试”文本。

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

【问题讨论】:

    标签: view ruby-on-rails-3.1


    【解决方案1】:

    您要查找的语法是 documented:

    text_area_tag(名称,内容 = nil,选项 = {})

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

    如果您知道 params[:sources] 有时会包含一个哈希,而其他时候是 nil(即未设置),那么您可以使用例如:

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

    只要params[:sources] 为假(例如nil),params[:sources] || {} 将评估为空哈希({}),这将避免错误。

    【讨论】:

    • 谢谢,我没有按照你的建议传递参数。我首先在控制器中设置它,然后将视图显示为 效果很好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    相关资源
    最近更新 更多