Ruby on Rails 3를 사용하여 모듈을 만들고 사용하는 방법은 무엇입니까?
Ruby on Rails 3를 사용하고 있으며 모듈에서 일부 사용자 지정 및 공유 코드를 이동하고 싶습니다.
- 모듈 코드를 작성하려면 어떤 구문을 사용해야합니까?
- 내 응용 프로그램의 어느 폴더에 모듈 파일을 배치해야합니까?
- 하나 이상의 컨트롤러 클래스에 해당 모듈을 어떻게 포함시켜야합니까?
- 애플리케이션의 어느 곳에서나 사용자 정의 모듈을 사용해야하는 다른 조치가있는 경우 무엇입니까?
- 내 애플리케이션에서 모듈의 메서드를 어떻게 호출 할 수 있습니까?
미리 감사드립니다.
1. 모듈은 다음과 같이 간단히 생성 / 열기됩니다.
module MyModule
def first_module_method
end
end
2. lib
폴더. lib
폴더 에서 모듈을 구성 하려면 모듈 자체에 넣을 수 있습니다. 예를 들어 하위 폴더를 원하는 경우 super_modules
모듈은 다음과 같이 정의됩니다.
module SuperModules
module MyModule
def first_module_method
end
end
end
3./5까지. 클래스에 모듈을 포함 할 때 클래스 내에 정의 된 것처럼 모듈 메서드를 간단히 호출 할 수 있습니다.
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
4. 먼저, 모듈이 애플리케이션의 모든 클래스에 정말로 필요한지 확인하십시오. 그렇지 않은 경우에는 필요하지 않은 클래스를 부 풀리지 않도록 필요한 곳에만 포함하는 것이 좋습니다. 모듈이 어디에나 있어야한다면 앱에서 클래스의 클래스 계층 구조를 살펴보세요. 모든 모델에서 모듈을 원하십니까? ActiveRecord :: Base를 열고 거기에 모듈을 추가 할 수 있습니다.
A> 1. 다른 루비 클래스와 동일한 구문을 사용할 수 있습니다. 예를 들어, 입력으로받는 바퀴 수에 따라 차량을 분류하기 위해 classify_vehicle 메서드를 사용할 VehicleClassifer 모듈을 정의하고 있습니다.
module VehicleClassifer
def classify_vehicle(number_of_wheels)
VehicleType.where("number_of_wheels = ?", number_of_wheels)
end
end
A> 2. 모듈은 일반적으로 / lib 폴더에 저장됩니다.
질문 3,4,5는 거의 같은 답을 가지고 있습니다. 당신이 사용할 수있는
class SomeController < ApplicationController
include VehicleClassfier
def index
classify_vehicle(4)
end
end
클래스에서 모듈을 사용하고 있으며 모든 모듈의 메서드에 액세스 할 수 있습니다.
또한 앱을 통해 모듈을 사용해야하는 경우 애플리케이션 컨트롤러에 포함 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4906932/how-to-create-and-use-a-module-using-ruby-on-rails-3
'programing tip' 카테고리의 다른 글
SpringData 저장소는 실제로 어떻게 구현됩니까? (0) | 2020.09.06 |
---|---|
sizeof (char)! = 1 또는 최소한 CHAR_BIT> 8 인 기계가 있습니까? (0) | 2020.09.06 |
다중 처리를 위해 공유 메모리에서 numpy 배열 사용 (0) | 2020.09.06 |
JVM의 JIT 컴파일러가 벡터화 된 부동 소수점 명령어를 사용하는 코드를 생성합니까? (0) | 2020.09.06 |
config / environments / development.rb에서“consider_all_requests_local”의 목적은 무엇입니까? (0) | 2020.09.06 |