我有一个搜索模型,我希望与太阳黑子一起使用来处理不同模型的所有搜索。在我开始之前,我已经陷入了困境。
以下是我网站上所有网页标题中显示的表单。
<%= simple_form_for @search, :url => searches_path, :method => :post do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", class: "btn btn-primary" %>
<% end %>
在我的searching_controller中
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"}
我很困惑。这显然是我发布params的方式的一个简单错误。有什么帮助吗?
答案 0 :(得分:0)
使用此:
def search_params
params.require(:search).permit!
end
而不是:
def search_params
params.require(:search).permit(:search)
end
由于params["search"]
中的字符串参数可能会发生此问题,而在控制器中使用.permit(:search)
,或者您的属性和型号名称相同。