自引用模型中的UrlGenerationError

时间:2017-01-13 19:01:32

标签: ruby-on-rails

我有一个针对嵌套对话的自引用Post模型。父帖子使用部分_post和_form呈现子帖子。每个帖子都有典型的“回复”,“编辑”和“删除”的粗略行为。

问题:子回复的编辑操作会抛出“UrlGenerationError Missing Required Keys [:id]”错误,即使请求中存在ID参数也是如此。然而,删除操作工作正常,所有操作也可以在父Post中正常工作。

screenshot of a parent post and two nested child posts

post.rb:

has_many :child_posts, class_name: "Post", foreign_key: "parent_post_id"
belongs_to :parent_post, class_name: "Post", optional: true

routes.rb中:

resources :posts

_post.html.erb:

<%= link_to 'Edit', edit_post_path(post.id), ... %>

_form.html.erb :(错误发生在<%= form_for post do |f| %>标记处。)

<% puts params.inspect # ->  <ActionController::Parameters {"controller"=>"posts", "action"=>"edit", "id"=>"123"} permitted: false> %> 
<%= form_for post do |f| %>
...

很高兴展示更多 - 这似乎是最相关的。想法?

1 个答案:

答案 0 :(得分:0)

这是由我在has_permalink gem中引入的冲突引起的。 (宝石按预期工作)