因此,在我的應用程序中,客戶端有很多網站,我的路由和控制器嵌套在客戶端,它們全都出現在顯示頁面上(代碼如下)。Rails 4 - 在父節目頁面上使用嵌套資源的Ransack使用
我試圖達到的目標是在客戶端顯示頁面上實現Ransack搜索表單和排序鏈接,以便用戶可以搜索關聯的網站等。
目前,當我創建與客戶端相關聯的站點時,它顯示所有客戶端的所有站點,而不管站點與哪個客戶端相關聯。
我的路線:
resources :clients, controller: 'clients' do
resources :sites, controller: 'clients/sites', except: [:index]
end
客戶端控制器/ show動作
class ClientsController < ApplicationController
def show
@client = Client.find(params[:id])
@q = Site.ransack(params[:q])
@sites = @q.result(distinct: true).page(params[:page]).per(5)
end
end
我的模型:
class Client < ApplicationRecord
has_many :sites, dependent: :destroy
end
class Site < ApplicationRecord
belongs_to :client
end
我的搜索表單和排序的客戶端/顯示[鏈接:ID ]第
<%= search_form_for @q do |f| %>
<%= f.search_field :site_ident_or_site_name_cont, :class => 'form-control', :placeholder => 'search client...' %>
<% end %>
<%= sort_link(@q, :site_name, 'Site Name') %>
我想要做的只是搜索與正在顯示的客戶端關聯的網站。任何援助在這裏將不勝感激。
所以我得到了{NoMethodError在/ clients/1 未定義的方法'sites_path'爲#<#:0x007f863ca6adc8> 你意思? asset_path} –
好吧,我明白了!你的帖子讓我去那裏有一些需要做的搜索表單的變化。謝謝你的幫助! –