在我的rails控制器中,我有这段代码:
if Photo.find(params[:photo_id]).patient_id == nil
.........
else
.........
所以当我没有params[:photo_id]
时出现错误:
Couldn't find Photo without an ID
我知道我可以解决它:例如:
if(params[:photo_id]) && (Photo.find(params[:photo_id]).patient_id == nil)
但是现在我试着写一个例外“它叫我怎么想”:
if Photo.find(params[:photo_id]).patient_id == nil rescue false
抛出一个新错误:
syntax error, unexpected modifier_rescue, expecting keyword_then or ';' or '\n' if
那么错误是什么?(我是编程的初学者!)
答案 0 :(得分:2)
你只需要一些parens。
if (Photo.find(params[:photo_id]).patient_id == nil rescue false)
...
end
答案 1 :(得分:1)
语法错误。尝试:
begin
if Photo.find(params[:photo_id]).patient_id == nil
.........
else
.........
rescue
false
end
答案 2 :(得分:1)
Photo.find_by_id(params[:photo_id]).try(:patient_id)
避免在非特殊情况下使用例外情况......并且通过它的声音,您可能偶尔会看到一张无法找到的照片。