【发布时间】:2013-06-05 10:11:16
【问题描述】:
我在三个模型之间关联:用户、帖子、评论。评论是 Post 的嵌套资源。
routes.rb
resources :posts do
resources :comments
end
用户模型:
has_many :comments
后模型:
has_many :comments
评论模型:
belonsg_to :user
belonsg_to :post
目标是当用户发表新评论时,它会创建与该用户的关联。所以你可以看到它就像用户知道他所做的所有 cmets。
cmets_controller.rb
def create
@post = Post.find(params[post_id]
@comment = @post.comments.build[:comment]
current_user.comments >> @comment
....
end
new.html.erb
<% form_for [@post, @post.comment.build] do |f| %>
.....
<% end %>
这给了我一个错误,没有方法 cmets。我应该怎么做才能避免这种情况?
【问题讨论】:
-
什么是 Prog 模型?它是
belongs_to而不是belons_to -
你打错字了,这可能是你的问题吗?你写了
<% form_for [@post, @post.comment.build] do |f| %>而不是<% form_for [@post, @post.comments.build] do |f| %>。所以comments而不是comment。
标签: ruby-on-rails ruby-on-rails-3 activerecord