Ruby on rails Rails没有方法错误关联
第一次呼叫,长时间监听。我对我的Rails协会有意见。我的目标是建立一个活动网站,用户可以在其中创建活动和参加活动。我已经创建了我的模型、用户、事件和关联,例如:Ruby on rails Rails没有方法错误关联,ruby-on-rails,associations,models,Ruby On Rails,Associations,Models,第一次呼叫,长时间监听。我对我的Rails协会有意见。我的目标是建立一个活动网站,用户可以在其中创建活动和参加活动。我已经创建了我的模型、用户、事件和关联,例如: class Event belongs_to :creator, :class_name => "User" ... end class User has_many :created_events, :foreign_key => "creator_id", :class_name => "Event"
class Event
belongs_to :creator, :class_name => "User"
...
end
class User
has_many :created_events, :foreign_key => "creator_id", :class_name => "Event", dependent: :destroy
...
end
我的事件模型只有一个描述和创建者id外键,其中我的用户只有一个名称字段。但是当我尝试使用@event=current\u user.events.build
时,我得到了一个无方法错误<代码>当前用户仅使用会话返回用户id
我一辈子也弄不明白为什么我会犯这样的错误
我有一个完整的项目。类
用户
有很多:创建的事件
,而不是有很多:事件
。因此,尝试current\u user.created\u events.build
而不是current\u user.events.build
请务必查看,您应该始终尝试尽可能最好地格式化代码。如果current\u user
只是用户id,那么它是一个数字,而不是类user的实例,这就是为什么没有events
方法。使用该id获取所需的用户,例如user.find(当前用户)
。classuser
有许多:已创建的事件
,而不是有许多:事件
。因此,尝试current\u user.created\u events.build
而不是current\u user.events.build
@jvillian您的评论应该是一个答案。添加到这个答案中,不要忘了通过调用来保存新事件:@event.save
在操作事件属性(日期/描述
),因为build
方法只创建内存中的实例<代码>保存将使其保留在数据库中。