0

タイピングから身を守るにはどうすればよいですか

TypeOfVoyagePortActivity.find_by_description(activity_description)

二度?

これは私がそれを使用しているコンテキストです:

 if TypeOfVoyagePortActivity.find_by_description(activity_description)
   pl.activity = TypeOfVoyagePortActivity.find_by_description(activity_description)
 else
   pl.activity = TypeOfVoyagePortActivity.find_by_description("Custom") 
 end
4

2 に答える 2

5
model = TypeOfVoyagePortActivity
pl.activity = model.find_by_description(activity_description) ||
  model.find_by_description("Custom")
于 2012-12-04T20:28:01.713 に答える
1

find_by_descriptionの結果を変数に割り当てることができます

 if t = TypeOfVoyagePortActivity.find_by_description(activity_description)
   pl.activity = t
 else
   pl.activity = TypeOfVoyagePortActivity.find_by_description("Custom") 
 end

またはより良い代替手段として:

p1.activity = [activity_description, "Custom"].each_with_object(nil) do |a, memo|
  memo ||= TypeOfVoyagePortActivity.find_by_description(a)
end
于 2012-12-04T20:27:34.833 に答える