Как перечислить ВСЕ в индекс даже с вложенными ресурсами в рельсах 3.1.0? - PullRequest
3 голосов
/ 31 января 2012

В нашем приложении rails 3.1.0 есть контроллеры rfqs и quotes. Rfq имеет много кавычек и цитата принадлежит к rfq. В маршрутах .rb это:

resources :rfq do
  resources :quotes
end

Однако мы хотим перечислить все цитаты в индексе. Но предопределенный маршрут позволяет только отображать все кавычки для определенного rfq, как показано для маршрутов рейка:

 rfq_quotes GET    /rfqs/:rfq_id/quotes(.:format)                                   {:action=>"index", :controller=>"quotes"}

Какой простой и понятный способ добавить маршрут, чтобы мы могли перечислить ВСЕ цитаты в индексе с показом и редактированием для каждой из перечисленных цитат? Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 января 2012

Вы должны изменить маршруты на:

resources :quotes, only: [:index]
resources :rfq do
  resources :quotes
end

И учитывать тот факт, что в этой ситуации у вас не будет: rfq_id.Вы можете использовать фильтр до:

before_filter :load_rfq

def load_rfq
  @rfq = Rfq.find(params[:rfq_id]) if params[:rfq_id].present?
end

, а затем

def index
  @quotes = @rfq.present? ? @rfq.quotes : Quote.all
end
1 голос
/ 31 января 2012

Это всего лишь предложение, даже не уверенное, сработает ли оно. Возможно, если вы сделаете еще один индекс в rfq и установите @rfqs = @ Rfqs.find (: all), а затем в представлении вы можете просмотреть все rfq в rfqs и каждую кавычку, связанную с каждым rfq. (@rfqs.each.quotes.find(:all).each do |quote|)

Я не совсем уверен, имеет ли это смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...