UFO ET IT

Rails 컨트롤러를위한 Ruby 도우미 메서드를 어디에 넣을까요?

ufoet 2020. 11. 9. 21:39
반응형

Rails 컨트롤러를위한 Ruby 도우미 메서드를 어디에 넣을까요?


특정 (또는 모든) 컨트롤러에 필요한 Ruby 메서드가 있습니다. 나는 그들을 넣어 보았습니다 /app/helpers/application_helper.rb. 뷰에서 사용되는 메서드에 사용했습니다. 그러나 컨트롤러는 이러한 방법을 보지 못합니다. 다른 위치에 배치해야합니까, 아니면 해당 도우미 메서드에 다르게 액세스해야합니까?

안정적인 최신 Rails를 사용합니다.


내부에 메서드를 정의해야합니다 ApplicationController.


Rails 4 이후로는 우려 사항이 있습니다. 여기에 괜찮은 기사가 있습니다 http://richonrails.com/articles/rails-4-code-concerns-in-active-record-models

본질적으로 컨트롤러 폴더를 보면 관심사 하위 폴더가 표시됩니다. 이 라인을 따라 거기에 모듈을 만듭니다.

module EventsHelper
  def do_something
  end
end

그런 다음 컨트롤러에 포함하십시오.

class BadgeController < ApplicationController
  include EventsHelper

  ...
end

응용 프로그램 컨트롤러 내에서 메서드를 정의해야합니다. 메서드가 거의 없으면 다음과 같이 할 수 있습니다.

class ApplicationController < ActionController::Base    
  helper_method :first_method
  helper_method :second_method

  def first_method
    ... #your code
  end

  def second_method
    ... #your code
  end
end

다음과 같이 도우미 파일을 포함 할 수도 있습니다.

class YourController < ApplicationController
  include OneHelper
  include TwoHelper
end

당신은 사용하여 컨트롤러에서 모든 도우미 메서드를 호출 할 수있는 view_context, 예를 들어,

view_context.my_helper_method

Ryan Bigg 응답이 좋습니다.

다른 가능한 해결책은 컨트롤러에 도우미를 추가하는 것입니다.

class YourController < ApplicationController
  include OneHelper
  include TwoHelper
 end

친애하는!

참고 URL : https://stackoverflow.com/questions/13613223/where-to-put-ruby-helper-methods-for-rails-controllers

반응형