1
美好的一天。 我的問題是^我試圖在準備好的項目上使用ransack。 它使用差異語言和will_paginage。 當前我得到在現成的應用上使用快速搜索
No Ransack::Search object was provided to search_form_for!
當我嘗試訪問控制器的索引操作。 我應該怎樣做搜索工作?
控制器:
def index
if params[:set_locale]
redirect_to articles_path(locale: params[:set_locale])
else
if params[:q]
@search = Article.search(params[:q])
logger.debug '! IF 1'
@articles = @search.result(:distinct => true).
paginate page: params[:page], order: 'created_at desc',
per_page: 5 # load all matching records
else
logger.debug('! ELSE 2')
@articles = Article.paginate page: params[:page], order: 'created_at desc',
per_page: 5
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @articles }
end
end
end
更新1 是的,如果你downvote我,好吧,但你能向我解釋什麼?
更新2 和視圖
<%= search_form_for @q do |f| %>
<%= f.label :articles_title_start %>
<%= f.text_field :articles_title_start %><br />
<!-- etc... -->
<%= f.submit :value=>'Search' %>
<% end %>
更新3 模型
class Article < ActiveRecord::Base
attr_accessible :text, :title
validates :title, :presence=>true,:uniqueness=>true
validates :text, :presence=>true
end
我試一下,謝謝! – Elmor
嗯,這是一個錯誤,但固定這並沒有解決一般問題。 如果我將URL更改爲http://0.0.0.0:3000/en/articles?q=fds 我收到錯誤:未定義的方法'with_indifferent_access' – Elmor
我已更新我的答案,以便@q在if語句之外定義爲它始終需要定義 –