在Rails中访问链接模型的属性

所以,对不起,如果这不是连贯的……我不知道我所有的Ruby / Rails术语(还)。

我有一个名为“Profile”的模型和一个名为“User”的模型,这两个链接如下:

class Profile < ActiveRecord::Base belongs_to :user class User < ActiveRecord::Base has_one :profile 

现在,在我创建的配置文件的“索引”和“显示”视图中,我希望能够从User模型访问属性“name”。 我怎样才能做到这一点? 我想我在控制器中需要一些看起来像这样的东西:

 class ProfilesController < ApplicationController def show @user = User.find(params[:user_id]) 

然后在视图中访问它,如下所示:

  

但那里的那些代码不起作用。

谢谢您的帮助。

如果属性name属于“ 个人档案”模型,请在视图中:

 <%= @user.profile.name %> 

如果属性name属于User模型,请停止服务器,运行rake db:migrate以确保每次迁移都已应用于您的数据库; 然后运行rails consoleruby script/console来检查attribe是否适用于您的模型:

 > u = User.first > u.name 

如果最后一个命令返回一个空字符串或第一个用户的名字,那么一切正常。 如果你得到一个NoMethodError: undefined method你应该检查你的数据库,因为可能缺少应该处理name属性的列。

你的控制器应该工作。 那部分是正确的。

几个问题

您的个人资料是否有user_id?

您是否运行了为Profile创建属性user_id并为User创建了profile_id的迁移?