Рельсы формируют частичную визуализацию одной модели в представлении другой модели - PullRequest
2 голосов
/ 24 декабря 2011

Я работаю над созданием приложения для рельсов, и сейчас я борюсь с отображением частичного из одной модели в представлении другой модели.

Итак, у меня есть модели 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?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Мне пришлось немного изменить синтаксис, но у меня это сработало.

<%= render 'goals/form', :goal => @goal %>
0 голосов
/ 24 декабря 2011

Может быть, вам нужно иметь частичное внутреннее представление пользователя или отправить параметр в виде локального хэша, если вы пытаетесь с целью / форма

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