0

我有一个模型Post

class Post < ActiveRecord::Base
  has_one :draft, class_name: Post, foreign_key: draft_id
end

routes.rb我有以下内容:

namespace :admin do
  resources :posts do
    resource :draft
  end
end

我想要实现的是在使用时启用草稿form_for,即:

= form_for [:admin, @post, @draft] do |form|

...其中@post@draft是同一模型的不同实例。

现在,如果我这样做,我会收到一个错误:

NoMethodError: undefined method `admin_tour_tour_url'

问题:那么如何使表单生成admin_tour_draft_url带有所需修饰符的 +edit_new_

PS我在这里走错路了吗?

4

1 回答 1

1

通过从您的路线中显式提取路线,在 form_tag 帮助程序中指定您自己的路径:

1) 耙式路线 | grep admin_posts

2)注意路径..可能类似于'admin_posts_draft'

3)将“_path”添加到路径中,这是您的助手的名称..在您的代码中使用该助手

<%= form_tag admin_posts_draft_path(@post, @draft) %>
<% end %>
于 2012-10-16T20:31:29.150 回答