我正在运行sphinx,思考sphinx并拥有一个基本的订购系统,包括公司,用户,订单,备注,评论等。
TS运行正常,在单个模型中搜索,其嵌套资源运行良好。
我想要做的是在我的标题(application.html.erb)中有一个全局搜索表单。问题是我的表单发布到。
<%= form_tag companies_path, :method => 'get', :id => "companies_search" do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
显然这适用于我的公司和嵌套资源。如果我把它放在我的标题中,任何结果都将在我的公司布局中返回。
是否可以为companies_path创建动态替代方案?
或者,我应该创建一些特殊的布局吗?
其他人在这做什么?
答案 0 :(得分:2)
我会创建一个单独的操作来处理全局搜索 - 或者至少将路由分离回可重用的搜索操作,并让该操作检测它是全局搜索,公司搜索等。
至于标题 - 您是否总是希望全球化?因为这很容易 - 只需对表单使用全局/通用搜索操作。如果你想动态完成它 - 如果合适的话,默认为模型的上下文? - 我可能会选择content_for
块,并在每个相关视图中添加相应的搜索表单。
当然,这会变得混乱,所以不同的方法可能是通过查看params [:controller]的帮助器来定制url以查看当前上下文是什么。不知道这可能会有多么脆弱。