레일에서 모델의 형태 필드를 어떻게 업데이트합니까?
-
05-07-2019 - |
문제
내가 지정한 모든 필드를 설정하고 싶다고 가정 해 봅시다.
모델에서 각각을 사용하여 각각을 수동으로 설정할 수 있습니다.
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')
}
제휴하지 않습니다 StackOverflow