0

私はいくつかの ActiveRecord 派生モデルを持つ gem を持っています。それらはテスト済みで動作します。

その gem に依存関係を追加しましたが、たとえば、form_for ステートメントでそのモデルを参照するページにアクセスしようとすると、恐ろしい method_missing エラーが発生します。

undefined methodmygem_mymodel_path'`

いつものように app/models ディレクトリにモデルがあり、すべてがうまくいったことに注意してください。私のモデルをこの宝石に移行することは、悲しみの原因でした.

更新 1: ロビンの質問への回答:

> rails console
> MyModel
=> MyGem::MyModel(id:string, name:string)

更新 2: フォーム コード フォーム 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」を使用すると、パス シンボル名を制御できるためです。むしろ「resources」マクロを使用したいのですが、form_for がモジュール名を追加しても、作成時にモジュール名をパス記号に追加することを知らないようです。これを解決する方法があると思いますが、このシナリオについては何も見つかりません。

4

1 に答える 1

2

使用scope:

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