Я работаю над созданием приложения для рельсов, и сейчас я борюсь с отображением частичного из одной модели в представлении другой модели.
Итак, у меня есть модели User
и Goal
. У пользователя может быть много целей, а у цели - один пользователь.
В представлении для User
я перечисляю цели этого пользователя. Я пытаюсь отобразить диалоговое окно jQuery, которое позволяет редактировать цель. У меня есть форма form_for для цели, которую я изменил на основе исходных лесов
<%= form_for([@user, @goal]) do |f| %>
...
<% end %>
Я пытаюсь создать <div>
в представлении users#show
, которое может визуализировать эту форму, но я не могу понять, как (или, если возможно, даже) передать правильные параметры в form_for частичное
<%= div_for(goal, :class => "dialog edit", :title => "Edit Goal") do %>
<%= render :partial => 'goals/form' %>
<% end %>
, которая дает мне undefined method 'model_name' for NilClass
ошибку, заставляя меня поверить, что form_for не знает, какими должны быть @user и @goal.
Мой контроллер для пользователя # show выглядит так
def show
@user = User.find(params[:id])
end
и для целей # edit
def edit
@goal = @user.goals.find(params[:id])
end
Маршруты выглядят так
resources :users do
resources :goals
end
Что мне нужно настроить для отображения формы цели редактирования в представлении user#show
?