如何在Rails 3中使用gem中的模型?

时间:2012-07-09 21:01:49

标签: ruby-on-rails-3

我有一个有一些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附加了模块名称。我假设有一种方法可以解决这个问题,但我找不到任何关于这种情况的信息。

1 个答案:

答案 0 :(得分:2)

使用scope

scope :as => "mymodule" do
  resources :my_resources
end