Jos*_*ank 5 search ruby-on-rails sunspot railscasts simple-form
我有一个简单的 rails 应用程序,它使用 simple_form gem 作为表单,我正在尝试使用 sunspot 设置搜索表单。我已按照 Ryan Bates 的 railscast 中关于设置太阳黑子的说明进行操作,它运行良好,除了我知道我没有使用 simple_form 帮助程序并且我想使用的事实。这是搜索表单的代码:
从 _search.html.erb:
<%= form_tag rules_path, :method => :get do |f| %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
来自 rules_controller.rb:
def index
@search = Rule.search do
fulltext params[:search]
end
@rules = @search.results
respond_to do |format|
format.html # index.html.erb
format.json { render json: @rules }
end
end
Run Code Online (Sandbox Code Playgroud)
就像我提到的,这暂时有效,但问题是:
如何更改 _search.html.erb 以使用 simple_form 格式?
小智 5
我能够通过为表单提供symbol与输入相同的名称并指定 URL来使其工作。查看您form_tag生成的 URL以及simple_form_for仅使用路径生成的内容。所以在你的形式部分尝试这个:
<%= simple_form_for :search, url: rules_path , :method => :get do |f| %>
<%= f.input :query, :autofocus => true %>
<%= f.submit "Search" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请研究您的form_tag产品并尝试使用 simple_form 复制它。
您是否尝试过以下操作:
<%= simple_form_for rules_path, :method => :get do |f| %>
<%= f.input :search %>
<%= f.button :submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)