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
'UFO ET IT' 카테고리의 다른 글
Facebook 좋아요 상자를 반응 형으로 만드는 방법은 무엇입니까? (0) | 2020.11.09 |
---|---|
쿼리 결과에 대한 T-SQL 루프 (0) | 2020.11.09 |
파이썬 집합 이해력 (0) | 2020.11.08 |
은 무슨 뜻인가요? (0) | 2020.11.08 |
Firebase 클라우드 메시징을 사용하여 장치 대 장치 메시지를 보내는 방법은 무엇입니까? (0) | 2020.11.08 |