我还是新手所以请原谅这个愚蠢的问题。我有3个型号:
- 用户(由设计生成),评论和帖子
我的路线.rb
resources :users do
resources :posts do
resources :comments
end
end
我的表单代码:
<%= form_for([@user,@post,@comment]) do |f| %>
...
<% end %>
我想生成到user_post_comments_path
,但上面form_for
生成到post_comments_path
。为什么?我误解了什么吗?非常感谢
答案 0 :(得分:0)
Rails路由和表单处理非常混乱,我仍然一直都错了......
我认为您的问题是您的某些变量未设置(nil
),因此rails无法确定您的实际情况。
我还建议您不要像这样嵌套您的路线,除非您必须为了网址。
通常足以嵌套一层深度,并在创建模型时使用current_user
分配给模型。这也降低了发布其他用户ID时所涉及的安全风险:
def create
@post = current_user.posts.build(post_params)
[...]
end
def create
@comment = current_user.comments.build(comment_params)
@comment.post = Post.find params[:post_id]
[...]
end