Вопрос маршрутизации Rails 3: подресурсы - PullRequest
1 голос
/ 01 апреля 2011

У меня есть 2 модели: пользователь и интерес.

Чтобы получить определенный интерес пользователей, вы можете посетить этот URL:

/users/1/interests

Теперь к моей проблеме. Каждый пользователь может иметь несколько дочерних элементов, то есть ссылки на других пользователей. Теперь я хочу получить конкретного ребенка, выполнив это:

/users/1/children/1/interests

Но я не уверен, как настроить это в routs.rb. Оба URL должны вызывать действие show в Interest_controller, где я просто хочу проверить это так:

def show
  @user = User.find params[:id]
  if params[:child_id]
    @user = @user.children.find_by_id params[:child_id]
  end
  @interests = @user.interests
end 

Итак, я хочу использовать один и тот же Interest_controller для обоих URL, но я не уверен, как записать это в моем rout.rb?

1 Ответ

0 голосов
/ 02 апреля 2011

Это наилучший из возможных ресурсов, который вам нужно сделать, например: http://weblog.jamisbuck.org/2007/2/5/nesting-resources

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

map.resources :users do |users|
  users.resources :children do |children|
    children.resources :interests
  end
end

Но, как он упоминает в статье, я бы также рекомендовал против этого. В этом типе URL нет реальной выгоды по сравнению с простым /children/[id]/interests и хорошим использованием сеанса, и его гораздо проще поддерживать.

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