Я использую gem 'ransack' для поиска записей.Ransack search include параметр
Страница, на которой я программирую, начинается ТОЛЬКО выпадающим списком, чтобы выбрать @department
. После этого я хочу, чтобы Ransack искал в пределах @department
.
Мне нужно указать дополнительный параметр department=2
с параметрами поиска Ransack. (Он работает, если я вставляю его в URL-адрес браузера).
Browser URL после того, как я печатаю в отделе = 2
http://localhost:5000/departments/costfuture?department=2&utf8=%E2%9C%93&q%5Bid_eq%5D=&q%5Bproject_year_eq%5D=&q%5Boriginal_year_eq%5D=&q%5Bclient_id_eq%5D=43&q%5Blocation_name_cont%5D=&q%5Bproject_name_cont%5D=&q%5Bcoststatus_id_in%5D%5B%5D=&q%5Bcoststatus_id_not_in%5D%5B%5D=&q%5Brebudget_true%5D=0&q%5Bnew_true%5D=0&q%5Bconstruction_true%5D=0&q%5Bmaintenance_true%5D=0&commit=Search
Это контроллер:
def costfuture
@departments = current_user.contact.departments
if params[:department]
@department = Department.find(params[:department])
@search = @department.costprojects.future.search(params[:q])
@costprojects = @search.result.order(:department_priority)
end
respond_to do |format|
format.html # index.html.erb
format.json { render json: @departments }
end
end
Я попробовал это в представлении:
<%= search_form_for @search, url: departments_costfuture_path(:department => @department.id) do |f| %>
Но, в результате URL отсутствует department=2
.
Спасибо за помощь - но эта строка дает мне «неопределенный метод« merge »для 2: Fixnum» – Reddirt
Это будет сложно найти, не видя полной ошибки и действия вашего контроллера (и, возможно,). Не могли бы вы добавить их на свой вопрос, пожалуйста? –
Это работало в представлении '<% = f.hidden_field: department_eq,: value => @ department.id%>'. Но мне нужно извлечь department = x из 'params [: q]'. Знаете, как это сделать? – Reddirt