我有将用户发送到月球的基本功能:
#Action in a controller
def outer_space
user = User.find(params[:id])
user.board_rocket_to_the_moon
end
#user model
def board_rocket_to_the_moon
#put on space suit, climb in rocket, etc.
end
现在,我想通过只是将用户送到月球来增加它,如果他们喜欢旅行。
将if语句放在控制器或模型中是否更好?为什么?
#option 1: Put an if in the controller
def outer_space
user = User.find(params[:id])
user.board_rocket_to_the_moon if user.likes_to_travel
end
#option 2: Stick the if in the user model
def board_rocket_to_the_moon
if self.likes_to_travel
#put on space suit, climb in rocket, etc.
return "BLAST OFF"
else
return "There is no way THIS dude is getting on THAT ship."
end
end
答案 0 :(得分:3)
答案 1 :(得分:1)
模型中的条件会更好。
但这取决于要求。 如果需要在方法调用时显示,则在模型中需要显示。 只有从此动作调用,您需要显示消息然后控制器中的条件是好的。