我有一个模型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_
+?
P.S。我在这里走错了路吗?
答案 0 :(得分:1)
通过从路由中明确提取路径,在form_tag帮助器中指定您自己的路径:
1)佣金路线| grep admin_posts
2)注意路径..可能类似'admin_posts_draft'
3)在路径中添加'_path',这是你的帮助者的名字..在你的代码中使用那个助手
<%= form_tag admin_posts_draft_path(@post, @draft) %>
<% end %>