2011-12-24 77 views
2

我正在建設一個Rails應用程序和現在我與部分從一個模型在另一個模型視圖顯示奮力工作的觀點一個模型的局部呈現。Rails的形成另一個模型

所以,我有模型UserGoal。用戶可以有很多目標,一個目標有一個用戶。

在Show View爲User,我列出了該用戶的目標。我試圖顯示一個jQuery對話框,允許您編輯目標。我對目標的一個部分的form_for那我修改基於初始腳手架

<%= form_for([@user, @goal]) do |f| %> 
... 
<% end %> 

我想創建的users#show認爲可以渲染形式的<div>,但我無法弄清楚如何(或者,如果它甚至有可能),以正確的參數傳遞給的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。

我的用戶#顯示控制器,像這樣

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視圖中顯示編輯目標表單?

回答

0

可能是你得有部分內部用戶察看或發送參數作爲本地哈希如果您正在使用的目標/形式

+0

我想到的是,當地的哈希是有道理的努力,但我無法弄清楚如何要做到這一點。我嘗試了渲染調用中的':locals'參數,但無法使其工作 – bknoles 2011-12-24 15:32:09

+0

<%= render:partial =>'goals/form':locals => {:data => @ goal}%>。所以我們可以以部分文件 – 2011-12-25 18:01:13

+0

的形式訪問變量數據。基本上就是這樣。最後讓它工作。問題是我正在使用 – bknoles 2011-12-27 01:29:21

相關問題