在不同模型的视图中显示模型

时间:2017-06-20 03:56:54

标签: ruby-on-rails ruby

到目前为止,我在rails应用程序中有两个模型。

  • 我的User模型包含idfirst_namelast_namepassword
  • 等字段
  • 我的Wallet模型包含namemoneyuser_id
  • 等字段

在应用程序视图中,我可以通过插入

来显示我的User
<h1><%= @user.first_name %></h1>

但我无法显示

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

我在no method error中获得users#show。我不明白这个错误。

我有一个名为show的方法,其中包含@user = User.find(params[:id])params在下面的私有方法中定义。

我的问题是,我是否需要控制器和Wallet模型的视图?我没想到因为我试图通过应用程序控制器显示内容。即使被定向的页面是Users#show

理想情况下,由于钱包有user_id,我很乐意通过这样的方式显示货币价值... @user.wallet.money或其他......通过与当前用户关联的外键调用money值。

1 个答案:

答案 0 :(得分: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更好地了解它,并在将来帮助您。