문제

내가 지정한 모든 필드를 설정하고 싶다고 가정 해 봅시다.

모델에서 각각을 사용하여 각각을 수동으로 설정할 수 있습니다.

self.field1 = 'frog'
self.desc_field = 'frog'
self.fieldx = 'frog'
etc....

그러나 필드 이름을 배열에 넣어 어떻게 이것을 할 수 있습니까?

내가 시도 할 때

fields_array=['field1','desc_field','fieldx']    
fields_array.each { |field|    
  self.field = 'frog'
}        

작동하지 않습니다. 제안이 있습니까?

도움이 되었습니까?

해결책

위의 John Topley의 답변은 기본적으로 정확하지만 다음과 같은 작업을 수행하려는 값을 할당하려면 다음과 같습니다.

fields_array=['field1','desc_field','fieldx']    
fields_array.each { |field|    
  self.send("#{field}=", 'frog')
}

추가 된 동일한 부호를 기록하십시오. 당신이하고 있습니다 self.field1='frog' 보다는 self.field1('frog').

다른 팁

사용해보십시오 send 방법:

fields_array=['field1','desc_field','fieldx']    
fields_array.each { |field|    
  self.send("#{field}", 'frog')
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top