我有一個method1
調用其他方法取決於參數,然後返回一個JSON。其中一種方法檢查是否存在特定用戶。如果用戶不存在,該方法應呈現JavaScript警報。起初,我得到了一個錯誤,渲染被稱爲多次(這是正確的)。所以我嘗試加入break
,但收到invalid break
錯誤。所以我嘗試return
,但我仍然得到Render and/or redirect were called multiple times in this action
。當我在method2中時,如何突破method1,以便只調用method2中的渲染?Ruby/Rails突破了嵌套的方法
def method1
data = case params["foobar"]
when "case1"
methodxy
...
else
method2
end
render json: data
end
def method2
if user.exists?
return {...}
else
render(
html: "<script>alert('Unknown user!')</script>".html_safe,
layout: 'application'
)
return
end
end
無論哪種方式,都會有情況。所以,你需要在你不想渲染json數據的不同情況下添加你的'render json:data'! – hyphenbash
可能的重複https://stackoverflow.com/questions/26446375/is-it-possible-in-rails-to-check-whether-a-redirect-or-render-had-already-been-i – spickermann
@hyphenbash所以如果沒有渲染json,沒有辦法突破method1? – loelu