【问题标题】:Rails 4: undefined method `permit' for "xxxx xxxx":StringRails 4:“xxxx xxxx”的未定义方法`permit':String
【发布时间】:2015-04-26 14:50:08
【问题描述】:

我有一个搜索模型,我希望将它与 sunspot 结合使用来处理跨不同模型的所有搜索。我什至还没开始就被困住了。

这是显示在我网站上所有网页标题中的表单。

      <%= simple_form_for @search, :url => searches_path, :method => :post do %>
      <%= text_field_tag :search, params[:search] %>
      <%= submit_tag "Search", class: "btn btn-primary" %>
      <% end %>

在我的搜索控制器中

 def search_params
     params.require(:search).permit(:search)
 end

在我的 Search.rb 中

    attr_accessor :search

当我将我的名字插入其中时,我会收到此错误

   undefined method `permit' for "simon walsh":String

参数:

 {"utf8"=>"✓",
  "authenticity_token"=>"1Tez0pnMILEciLR6j+li+qSeO4NYBj3XsB6dYG07RymsiNUNSAGI5ztpMiD4JNAtTnqwJYdHTpPBRqGduWHjBw==",
  "search"=>"simon walsh",
   "commit"=>"Search"}

我很困惑。这显然是我发布参数的方式的一个简单错误。有什么帮助吗?

【问题讨论】:

    标签: forms ruby-on-rails-4 params


    【解决方案1】:

    使用这个:

    def search_params
        params.require(:search).permit!
    end
    

    而不是这个:

    def search_params
        params.require(:search).permit(:search)
    end
    

    这个问题可能是因为params["search"] 中的字符串参数,而在控制器中您使用的是.permit(:search),或者您的属性和模型名称可能相同。

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多