我正在构建一个rails应用程序,现在我正在努力在另一个模型的视图中显示来自一个模型的部分。
所以我有模型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
视图中显示修改目标表单?
答案 0 :(得分:0)
如果您尝试使用目标/表单,可能需要部分内部用户视图或将参数作为本地哈希发送
答案 1 :(得分:-1)
我不得不做一个小的语法更改,但它对我有用。
<%= render 'goals/form', :goal => @goal %>