0

我有一个包含一些 ActiveRecord 派生模型的 gem。它们经过测试并且可以工作。

我已经向该 gem 添加了一个依赖项,但是当我尝试访问在 form_for 语句中引用该模型的页面时,例如,我得到了可怕的 method_missing 错误:

undefined methodmygem_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 附加了模块名称。我认为有办法解决这个问题,但我找不到关于这种情况的任何信息。

4

1 回答 1

2

使用scope

scope :as => "mymodule" do
  resources :my_resources
end
于 2012-07-09T22:32:56.553 回答