小编Eri*_*ric的帖子

标题部分中的搜索搜索表单:没有Ransack ::搜索对象已提供给search_form_for

首先,我是RoR的新手,所以答案可能很明显,在这种情况下我道歉.我环顾四周,找不到任何有用的东西.

我正试图在我的应用程序的每个网页的标题上都有一个搜索表单,它将搜索我所有"桶"的名称.这是相关代码:

在app/views/layouts/_header.html.erb中(在导航栏中):

<% search_form_for @q do |f| %>
  <%= f.label :name_cont %>
  <%= f.text_field :name_cont %>
  <%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

在app/controllers/buckets_controller.rb中:

def index
  unless params[:q].blank?
    @q = Bucket.search(params[:q])
    @buckets = @q.result.paginate(:page => params[:page])
  else
    @buckets = Bucket.find(:all, :limit => 5).paginate(:page => params[:page])
  end
end
Run Code Online (Sandbox Code Playgroud)

我理解最后一部分并不是那么好:我想要做的就是如果我只是访问存储桶索引页面(而不是通过搜索),我会显示最近创建的5个存储桶.当我在标题表单中搜索某些内容时,我会访问索引页面,但只显示搜索到的内容.(处理它的更好方法是将搜索页面与索引页面分开吗?)

我发现这个问题几乎完全相同,但是@q如果每个页面都有表格,我仍然不知道如何处理- 当然我不必改变每个控制器的每一个动作?

提前抱歉,因为我的愚蠢,我的愚蠢!

model-view-controller ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ransack

8
推荐指数
1
解决办法
5001
查看次数