我有一个有一些ActiveRecord派生模型的gem。他们经过测试和工作。
我已经为该gem添加了一个依赖项,但是当我尝试在form_for语句中访问引用该模型的页面时,我得到了可怕的method_missing错误:
undefined method
mygem_mymodel_path'`
注意我的app / models目录中的模型和平常一样,并且一切都很好;将我的模型迁移到这个宝石一直是悲伤的原因。
更新1: 回答罗宾的问题:
> rails console
> MyModel
=> MyGem::MyModel(id:string, name:string)
更新2:对于Robin的表单代码请求 表格erb:
<%= form_for(MyModel.new, :remote => true, :html => { :class => "new_mymodel_form", :id => "new_mymodel_form"}) do |f| -%>
在Robin的建议之后,这是我找到它的唯一方法:
更新3:丑陋的解决方法
使用名为Mymodel的模型和名为MyModule的模块:
post '/mymodels', to: 'mymodels#create', as: 'my_module_mymodels
因为'as'让你控制路径符号名称。我更倾向于使用'resources'宏,但它似乎不知道在创建它时将模块名称添加到路径符号,即使form_for附加了模块名称。我假设有一种方法可以解决这个问题,但我找不到任何关于这种情况的信息。
答案 0 :(得分:2)
使用scope
:
scope :as => "mymodule" do
resources :my_resources
end