연결 이름이 문자열 인 경우 연관 객체에 대한 핸들을 얻을 수있는 방법이 있습니까? 예를 들어동적으로 레일 연결 얻기
:
o = Order.first
o.customer 나에게이 순서가 속한 고객 객체를 제공 할 것입니다.
내가있는 경우 :
o = Order.first
relationship = 'customer'
내가 좋아하는 일을하고 싶습니다 :
customer = eval("o.#{relationship}")
내가 평가 아는 끔찍한 옵션이며 나는 그것을 피해야한다. 이것을 수행하는 가장 좋은 방법은 무엇입니까 (이 예에서 eval은 작동하지 않습니다).
customer = o.association(relationship)
나중에 협회가 공개 API의 일부가 아닌 사용해서는 안 것을 발견 :
나는이 작업을했다. 왜냐하면 내가 코드의 라인을 잡았을 때 나는 그 페이지를 위로 올려서 (그 관계를 참조했다) 작동을 멈췄다.어떤 아이디어라도 좋을 것입니다!
#to_sym에 대한 호출이 필요하지 않습니다; send는 문자열을 처리 할 수 있습니다. – Mori
힌트를 보내 주셔서 감사 드리며 코드를 편집했습니다. – mario
와우, 마술처럼! 레일이나 루비 방법을 보내고 있습니까? 내가 그것에 대한 문서를 찾을 수 없습니다. 덧붙여 말하자면, 나는 이것을 사용하지 못해서 이것이 어떻게 작동하는지 전혀 모른다. 다시 한 번 감사드립니다! – Sean