レールアプリケーションの構築に取り組んでいますが、今は別のモデルのビューで1つのモデルの一部を表示するのに苦労しています。レールは別のモデルのビューで1つのモデルの部分レンダリングを形成します
私はモデルUser
とGoal
を持っています。ユーザーは多くの目標を持つことができ、目標には1人のユーザーしか存在しません。
User
の表示ビューでは、そのユーザーの目標をリストします。私は目標を編集できるjQueryダイアログを表示しようとしています。私はそのフォームをレンダリングすることができusers#show
ビューで<div>
を作成しようとしていますが、私は方法を見つけ出す(または場合することはできません最初の足場に基づいて
<%= form_for([@user, @goal]) do |f| %>
...
<% end %>
を修正目的のためのform_for部分を持っていますそれはのform_forがどうあるべきか@userと@goal知らないと信じて私をリードし、私にundefined method 'model_name' for NilClass
エラーを与えるのform_for部分
<%= div_for(goal, :class => "dialog edit", :title => "Edit Goal") do %>
<%= render :partial => 'goals/form' %>
<% end %>
に適切なパラメータを渡す)ことも可能です。
ユーザ#ショーのための私のコントローラはそう
def show
@user = User.find(params[:id])
end
や目標の#編集用
def edit
@goal = @user.goals.find(params[:id])
end
ルートのようなものですが、私は調整する必要がありますこれは何
resources :users do
resources :goals
end
のように見えますuser#show
ビューに編集目標フォームを表示するにはどうすればよいですか?
目標/フォームをしようとしている場合、ローカルハッシュとしてパラメータを送信する必要があることかもしれないが、私はどのように把握することはできませんそれをする。私はレンダリングで ':locals'引数を試しましたが、動作させることはできません。 – bknoles
<%= render:partial => 'goals/form':locals => {:data => @ goal}%>したがって、部分データファイル –
の形式で変数データにアクセスすることができます。それは基本的にそれです。最後にそれを働かせました。問題は私が使用していたことだった – bknoles