2

RailsAdmin::MainController から継承するカスタム rails_admin コントローラー (Backend::ImagesController) を作成しています。

この回答の手順に従いましたが、ビューでルート ヘルパー backend_image_path(@image) を使用すると undefined_method エラーが発生します。

コントローラーは、controllers/backend/images_controller.rb の下で次のように定義されます。

module Backend
  class ImagesController < RailsAdmin::MainController
    #layout 'rails_admin/cropper'

    skip_before_filter :get_model
    skip_before_filter :get_object
    skip_before_filter :check_for_cancel

    .... the various actions ....

私のルートは次のように定義されています。

namespace 'backend' do
  resources :images do
    member do
      get :cropper
      post :crop
    end
  end
end

mount RailsAdmin::Engine => '/backend', :as => 'rails_admin'

そして、rake routes の出力は私が期待するものです:

backend_image GET  /backend/images/:id(.:format) backend/images#show {:protocol=>"https://"}

最後に、Rails コンソールから:

app.backend_image_path(id: 10)
=> "/backend/images/10"

RailsAdmin::MainController を拡張して RA に統合しようとするまで、このコントローラーは問題なく動作しました。

コントローラから route_helper にアクセスできなくなった理由がわかりません....

4

1 に答える 1