我正在使用Rails 4.0.0
与Mongoid和HAML我有以下模型结构:
class Merchant
has_one :setting
end
class Setting
belongs_to :merchant
has_many :categories
end
class Category
belongs_to :setting
end
Setting
按意图划分为单一资源。所以我有这些路线:
resources :merchants do
resource :setting, only: [:show, :edit, :update] do
resources :categories
end
end
当我使用标准表单助手为这样的类别创建表单时:
= form_for([@merchant, @setting, @category]) do |f|
我编辑了一个类别,我得到以下HTML:
<form accept-charset="UTF-8" action="/merchants/5257cfdf16abe9985c000002/setting/categories/5257cfdf16abe9985c000003" class="edit_category" id="edit_category_525c090a16abe9988f000001" method="post">
这是错误的。 category_id
应为525c090a16abe9988f000001
,与form_tag的id
属性相同,但不是。{/ p>
当涉及到奇异的资源时,我遇到了所有polymorphic_path助手的类似奇怪的行为。我相信,我在这里做错了什么。或者Rails 4中的path_helpers和polymorphic_path助手有问题吗?