2012-12-17 4 views
-1

?루비 메타 프로그래밍 더 나은 솔루션

+0

"더 나은/최고의"솔루션 질문은 http://codereview.stackexchange.com/에 게시해야합니다. –

+0

이것이 왜 닫 혔는지 알지만 조금 재 입력하면 다시 열 수 있다고 생각합니다. 아마도 eval을 사용하지 않고 이것을 수행하는 방법을 묻는다면? –

답변

6

이 작동합니다 :

%w{user_id for_whom_id category_id product_status_id}.each do |f| 
    it "should fail validation with no #{f}" do 
    should_fail_on_validation { |p| p.public_send "#{f}=", nil } 
    end 
end 

이 가능하면 평가를 방지하는 것이 가장 좋습니다. 그리고이 경우에는 필요하지 않습니다.

+0

얼마나 유연한'send'와 그 동반 방법이 주어지면, 실제로 * 실제로 *'eval' 할 필요는 없습니다. – tadman

관련 문제