2017-06-20 130 views
0

到目前爲止,我在rails應用程序中有兩個模型。在不同模型的視圖中顯示模型

  • User模型具有像idfirst_namelast_namepassword
  • Wallet模型具有像name領域,moneyuser_id

中應用程序的視圖,我可以顯示我的User領域插入

<h1><%= @user.first_name %></h1> 

但我不能夠顯示

<h1><%= @wallet.money %></h1> 

users#show得到了no method error。我不明白這個錯誤。

我有一個方法稱爲show其中包含@user = User.find(params[:id])params定義在下面的私人方法。

我的問題是,我需要一個控制器和我的Wallet模型的視圖?我不認爲我這樣做是因爲我試圖通過應用程序控制器顯示內容。即使頁面被導向爲Users#show

理想的情況下,因爲錢包裏有user_id,我很想通過...像 @user.wallet.money或東西...顯示貨幣價值通過與當前用戶相關聯的外鍵調用物有所值。

+0

你在哪裏定義@wallet? ,如果它們之間有任何關係,可以添加控制器和/或模型嗎? –

回答

1

也許,你還沒有定義@wallet,因此它是nil,因此錯誤,使用協會

在你User模型中,您需要定義關聯作爲

has_one :wallet 

在您的wallet模型..

belongs_to :user 

然後,控制器

@user = User.includes(:wallet).find_by_id(params[:id]) 

現在看來,你可以把它作爲

@user.wallet.money 

我建議你去通過association_basics更好地理解它,並幫助你在未來..

+0

好的。但我有很多錢包。那麼它會成爲has_many:錢包和錢包模型中的shoiuldn't屬於belongs_to:user? –

+0

哦,你將不得不通過它然後..並與'has_many:錢包'關聯你想顯示所有錢包的總和? –

+0

不,我只想顯示與ID爲1的用戶登錄到會話 –

相關問題