-1

これが評価なしでどのように機能するか

%w{user_id for_whom_id category_id product_status_id}.each do |f|
  code = <<-C
  it "should fail validation with no #{f}" do
    should_fail_on_validation { |p| p.#{f} = nil }
  end
  C
  eval code
end

?

4

1 に答える 1

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

可能であれば評価を避けるのが最善です。そしてこの場合、それは必要ありません。

于 2012-12-17T21:18:48.510 に答える