我有一个包含一些 ActiveRecord 派生模型的 gem。它们经过测试并且可以工作。
我已经向该 gem 添加了一个依赖项,但是当我尝试访问在 form_for 语句中引用该模型的页面时,例如,我得到了可怕的 method_missing 错误:
undefined method
mygem_mymodel_path'`
请注意,我的 app/models 目录中的模型和往常一样,一切都很好;将我的模型迁移到这个 gem 一直是悲伤的原因。
更新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| -%>
在罗宾的建议之后,这是我找到的唯一方法:
更新 3:一个丑陋的解决方法
使用一个名为 Mymodel 的模型和一个名为 MyModule 的模块:
post '/mymodels', to: 'mymodels#create', as: 'my_module_mymodels
因为'as'让你控制路径符号名称。我更愿意使用“资源”宏,但它似乎不知道在创建它时将模块名称添加到路径符号,即使 form_for 附加了模块名称。我认为有办法解决这个问题,但我找不到关于这种情况的任何信息。