我在 Rails 项目中有一个用户模型(由设计生成)和一个提交模型。我在用户模型中添加了一个名为“full_name”的字段。此外,提交模型中有一个“user_id”字段。
我想在提交显示页面上显示与提交相关联的用户的全名。现在它显示来自提交模型的 user_id 就好了。
我有这个用户模型:
class User < ActiveRecord::Base
has_many :submissions
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
attr_accessible :email, :password, :password_confirmation, :remember_me, :full_name, :role_id
validates_presence_of :full_name
end
这是提交的模型:
class Submission < ActiveRecord::Base
belongs_to :user
attr_accessible :description, :title, :user_id
end
这是在控制器中:
def show
@submission = Submission.find(params[:id])
@user = User.find(params[@submission.user_id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @submission }
end
end
当我尝试在视图中使用这条线时,我得到了什么:
<%= @user.full_name %>
我收到此错误:
Couldn't find User without an ID
我尝试了几种变体,但无法完全弄清楚应该用什么代替:
@user = User.find(params[@submission.user_id])