Частичная форма с вложенными маршрутами - PullRequest
1 голос
/ 11 марта 2010

У меня есть две модели - User и Entry - которые связаны через отношение has_many (у пользователя много записей). Я использую RESTful маршрутизацию, и в моем файле rout.rb есть следующее:

map.resource :user, :controller => "users" do |user|
  user.resources :entries
end

Кажется, это работает, но в моем частичном _form-файле, когда я делаю это:

form_for [@current_user, @entry] do |f|
  # Form stuff
end

Создает URL-адрес примерно так:

.

/ пользователь / записи% 23% 3Cuser: 0xb6a6aea8% 3E

вместо

/ пользователя / запись

Я что-то упустил?

Я должен отметить, что правильные классы применяются к форме при создании или редактировании, так что, похоже, она правильно интерпретирует то, что я пытаюсь сделать - просто я могу не отправлять форму на недействительный URL.

Ответы [ 2 ]

0 голосов
/ 14 марта 2010

Я понял это. Вместо того, чтобы делать:

form_for [@current_user, @entry] do |f|
  # Form stuff
end

Мне нужно было сделать:

form_for [:user, @entry] do |f|
  # Form stuff
end

То есть вместо того, чтобы использовать сам объект @current_user, я просто должен был сообщить form_for, к чему относится мой объект @entry (в данном случае класс user).

0 голосов
/ 11 марта 2010

Кажется, что вы не можете вкладывать ресурсы из ресурса (единственного числа) Попробуй сделать

map.resources :users do |user|
  user.resources :entries
end

Более того, лучше использовать ресурсы для пользователей.

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