Ссылки на вложенные ресурсы в Rails 3 - PullRequest
0 голосов
/ 12 января 2012

У меня есть контроллеры, которые работают "в контексте" некоторой модели.Пример: контроллеры UsersController и InvoicesController могут работать в контексте модели компании - они показывают пользователей и счета для некоторой компании.Я использую вложенные ресурсы в качестве решения для маршрутизации и имею URL-адреса, такие как

http://localhost:3000/companies/8/users

Какой самый простой и гибкий способ создания ссылок в представлении индекса, который будет отражаться в контексте?1007 * Это означает, что new_user_path или new_company_user_path будут созданы в зависимости от контекста.Я не хочу использовать много если ... тогда.Есть ли решение?

Ответы [ 2 ]

1 голос
/ 12 января 2012

Вы не обойдетесь без ЛЮБЫХ переключателей, но вы можете написать помощник, чтобы хотя бы не допустить его в код вашего представления.

Я бы посоветовал вам взглянуть на url_for помощник в Railsи используйте это внутри помощника следующим образом:

def conditional_path(action)
  if (params[:company_id]
    url_for(:controller => 'users', :action => action, :company_id => params[:company_id])
  else
    url_for(:controller => 'users', :action => action, :invoice_id => params[:invoide_id])
  end
end

Что-то вроде этого вы можете получить с помощником столько, сколько захотите

0 голосов
/ 12 января 2012

Если я вас правильно понимаю, вы можете сделать это легко и просто с маршрутами массива:

= link_to 'Whatever', [:new, @company, @account, @user]

Если присутствует @company, вы получите new_company_user_path, если @account присутствует new_account_user_path или если нет new_account_path и т. Д.Я не нахожусь в моем проекте, поэтому не могу проверить это.

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