在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 console
或ruby script/console
来检查attribe是否适用于您的模型:
> u = User.first > u.name
如果最后一个命令返回一个空字符串或第一个用户的名字,那么一切正常。 如果你得到一个NoMethodError: undefined method
你应该检查你的数据库,因为可能缺少应该处理name
属性的列。
你的控制器应该工作。 那部分是正确的。
几个问题
您的个人资料是否有user_id?
您是否运行了为Profile
创建属性user_id并为User
创建了profile_id的迁移?