Ruby on rails 用于建立关联的嵌套资源和构建方法
我有三个模型:用户、帖子、评论。注释是带有Post的嵌套资源 routes.rbRuby on rails 用于建立关联的嵌套资源和构建方法,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我有三个模型:用户、帖子、评论。注释是带有Post的嵌套资源 routes.rb resources :posts do resources :comments end 用户模型: has_many :comments 后模型: has_many :comments 注释模型: belonsg_to :user belonsg_to :post 目标是当用户做出新评论时,它会创建与该用户的关联。所以你们可以看到它,就像用户知道他所做的所有评论一样 注释\u controller.rb
resources :posts do
resources :comments
end
用户模型:
has_many :comments
后模型:
has_many :comments
注释模型:
belonsg_to :user
belonsg_to :post
目标是当用户做出新评论时,它会创建与该用户的关联。所以你们可以看到它,就像用户知道他所做的所有评论一样
注释\u 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 %>
.....
这给了我一个没有方法注释的错误。我应该做些什么来避免这种情况?使用
@post.comments.build
而不是
@post.comment.build (x)
这应该是可行的,如果可能的话,将这行代码从视图移动到控制器
更多信息
在new.html.erb文件中,您正在使用“s”作为构建方法 应该是,
<% form_for [@post, @post.comments.build] do |f| %>
.....
<% end %>
.....
您很可能在new.html.erb中丢失了“S”字母。应提供以下评论:
<% form_for [@post, @post.comments.build] do |f| %>
.....
<% end %>
.....
如果你没有发帖背后还有什么逻辑,请告诉我们。您的创建操作看起来很好。尝试查看console student_id属性,如果该属性中填充了id,则可以。干杯。什么是Prog model?它是
属于
而不是属于
参考您输入的链接,这可能是您的问题吗?您编写了
而不是
。因此注释
而不是注释
。