0
클래스 메서드를 동적으로 만들 때 생성시 알려진 몇몇 인수를 구워낼 수있는 방법이 있습니까?구운 paramers를 사용하여 Ruby 메서드를 동적으로 만드는 방법은 무엇입니까?
모델을 만들 때 주어진 :title
에서 :slug
속성을 생성하는 모듈을 직접 만들었습니다. https://gist.github.com/firedev/4943289
나는이 부분 리팩토링 할 것이다 그러나 : 그래서 내가 여기에 모든 PARAMS 제거 할 수
def create_slug(title_attr, slug_attr, &block) # generated method
self.send(slug_attr) # I have to pass slug_attr from outside
...
end
:
self.send :after_initialize do
create_slug(title_attr, slug_attr, &block) # I pass attributes from here
end
을 그리고 매개 변수 구운에서 생성 된 방법 대신에이 :
def create_slug # this method is generated automatically
self.send(:slug) # I want :slug to be baked in
...
end
self.send :after_initialize, :create_slug # no attributes
죄송합니다, 아니, 내가 저장 '필요할 때 데이터베이스에 slug', 나는 to_param''에 그것을 사용할 수 있습니다. 문제는 속성을 메소드에 굽는 방법이 있는지입니다. 나는 약간의 배경을 제공하는 코드를 포함시켰다. – firedev
코드 링크 만 제공하지 마십시오. * 링크가 귀하의 답변을 깨뜨릴 때 * 거의 가치가 없을 것입니다. 대신, 왜 올바른지 링크 코드의 요약을 제공 한 다음 전체 예제에 링크하십시오. –