2017-06-20 97 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的用户登录到会话 –

相关问题