【发布时间】:2010-09-18 02:22:55
【问题描述】:
我有以下 Rails 3 行
在 project.rb 模型中效果很好:
permissions.find_by_project_id(1).role.name
但是在 projects_helper 中会出错“nil:NilClass 的未定义方法 `role'”:
if Permission.find_by_project_id(project_id).role.name.nil?
.
.
这是为什么呢?
我真正想要的是:
current_user.permission.find_by_project_id(project_id).role.name.nil?
但是那个错误:“未定义的方法 `permission' for #”
你能帮我理解 ActiveRecord 允许我构建这些查询吗?
谢谢
添加信息:
permission.rb
class Permission < ActiveRecord::Base
belongs_to :user
belongs_to :project
belongs_to :role
end
项目.rb
class Project < ActiveRecord::Base
has_many :permissions
has_many :users, :through => :permissions
end
角色.rb
class Role < ActiveRecord::Base
has_many :permissions
end
用户.rb
class User < ActiveRecord::Base
belongs_to :instance
has_many :books
has_many :permissions
has_many :projects, :through => :permissions
【问题讨论】:
-
?这也是一个助手,我不确定是不是这个问题
标签: ruby-on-rails activerecord ruby-on-rails-3