我有一个rails应用程序,我有has_many和belongs_to关联。但是在尝试检索元素时遇到了问题。我的模特是活动,评论和投票。 活动有多个评论和投票。当然评论和投票属于一个事件。
我的架构是
create_table "events",
t.string "etime"
t.integer "eid"
end
create_table "votes",
t.integer "eventid"
t.string "userid"
t.integer "event_id"
end
社团:
class Event < ActiveRecord::Base
has_many :comments
has_many :votes
end
class Votes < ActiveRecord::Base
belongs_to :event
end
我正在尝试查看事件的所有投票。控制器操作是:
@events = Event.all
@events.each do |event|
event.votes.each do |vote|
respond_to do |format|
format.html
end
end
end
查看和错误行:
<%= @vote.userid %>
我收到错误“未定义的方法”用户ID“投票”。在我的控制器中,我渲染我的偶数并且它有效。所以当我在视图中这样做时似乎是一个问题。 任何想法我可能做错了什么?我完全迷失了这个
答案 0 :(得分:0)
可能就像使用event_id
而不是eventid
一样简单。
运行rails console
并在那里玩游戏总是值得的。您通常可以自动填充方法。
v = Vote.new
v.event<tab to get options>
答案 1 :(得分:0)
在某些地方,你完全错了,你的表迁移,就像你的foreign_key名称一样,你的主键是错误的。
在标准情况下,所有型号的主键都为 ID ,只有 ID 。
要与其他模型相关联,例如,您的投票模型需要belongs_to :event
关联, event_id 列。这些是铁路标准
让我们假设,你的关联/列是正确的,你得到的错误是因为你的@vote
对象是 nil ,在你的控制器中你需要分配/初始化{{1变量使用它你似乎没有做的视图。