Rails вопрос о пользовательских маршрутах - PullRequest
1 голос
/ 19 декабря 2009

У меня есть приложение, в котором есть модель User и Project. У меня есть следующие отношения между этими двумя моделями:

USER
has_many :authorships , :foreign_key => :author_id
has_many :moderatorships, :foreign_key => :moderator_id
has_many :authored_projects, :through => :authorships, :class_name => 'Project'
has_many :moderated_projects, :through => :moderatorships, :class_name => 'Project'

Я хочу, чтобы маршрут был / users / id / favour_projects и / users / id / moderated_projects У меня есть в моих маршрутах.rb

map.resources :users,:has_many => [:authored_projects, :moderatored_projects], :shallow => true, :collection => {:logins => :get}

Но когда я бегу по рейку, я получаю

user_authored_projects GET    /users/:user_id/authored_projects(.:format)        {:controller=>"authored_projects", :action=>"index"}

Но у меня нет контроллера authored_projects. Как мне этого добиться?

1 Ответ

0 голосов
/ 19 декабря 2009

Я думаю, что вы хотите сделать это вместо этого в ваших маршрутах:

map.resources :users do |users|
  users.resources :authored_projects, :controller => :projects
  users.resources :moderated_projects, :controller => :projects
end

Но я думаю, что вы хотите сделать что-то еще, например:

map.resources :users, :member => [:authored_projects, :moderated_projects]

А затем создайте действия authored_projects и moderated_projects в вашем UsersController.

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