親クラスのサブクラスのプライベートメソッドを、特にRailsのApplicationController、Controllers、およびlibモジュールに関係する親クラスに含まれるモジュールから呼び出すことはできますか?親クラスのサブクラスのプライベートメソッドを、レールの親クラスに含まれるモジュールから呼び出すことはできますか?
コントローラー名を変更する必要がある場合は、モデル名を反映するメソッド名を変更することを検討してください。
私はこれは本当に悪いコーディングで感じ、Railsアプリケーションからこの
例についてどう思うかコミュニティを知りたいと思った:
/lib/some_module.rb
module SomeModule
include SomeModuleResource
def filtering_method
calling_method
end
def calling_method
fetch_object
end
end
/libに/ some_module_resource.rb
module SomeModuleResource
def fetch_object
note
end
end
/app/controllers/application_controlle r.rb
class ApplicationController < ActionController::Base
include SomeModule
before_action :filtering_method
end
/app/controllers/notes_controller.rb
class NotesController < ApplicationController
def show
end
private
def note
@note ||= Note.find(param[:id]))
end
end
私はあなたが達成しようとしているのだろうか? 'show'メソッドで' note'を呼び出したり、コントローラーで 'before_action:note'を定義したりしないでください。もっと読みやすく、理解しやすいIMHO。 – spickermann
私はこのコードを私が作業しているアプリケーションで見たので、これはコーディングの方法が間違っていると他人に正当化する必要があるため、これを尋ねています。 – Satya
他の開発者になぜそうしたのか尋ねましたか? 1行のコードを2つのモジュールと間接指定のいくつかのステップに置き換えることをお勧めします。私はこの例が一目見てばかげて複雑に見えることに同意しますが、この複雑さを導入する決定には理由や歴史があるに違いありません。 – spickermann