大多數 rails 開發者遲早都會看到乙個錯誤訊息:can only render or redirect once per action(動作只能渲染或重定向一次)。這個提示很煩人,也很容易修正。出現這個錯誤的原因是,沒有理解render
的工作原理。
例如,下面的**會導致這個錯誤:
def
show
@book
= book.find(params[
:id
])
if
@book
.special?
render action:
"special_show"
end
render action:
"regular_show"
end
def
show
@book
= book.find(params[
:id
])
if
@book
.special?
render action:
"special_show"
and
return
end
render action:
"regular_show"
end
千萬別用&& return
代替and return
,因為 ruby 語言操作符優先順序的關係,&& return
根本不起作用。
注意,actioncontroller
能檢測到是否顯式呼叫了render
方法,所以下面這段**不會出錯:
def
show
@book
= book.find(params[
:id
])
if
@book
.special?
render action:
"special_show"
end
end
如果@book.special?
的結果是true
,會渲染special_show
檢視,否則就渲染預設的show
模板。
render函式的渲染
1.官網 2.render使用 render h 1.使用方法1 render h 相當於v bind style,接受乙個字串 物件或字串和物件組成的陣列 attrs domprops props on click val nativeon directives 自定義指令 slot 具名插槽 k...
render渲染的理解彙總
我們碼農把 一維的指令或資料 xml html ui結構 轉為二維或三維等方便人可見的東西的這一過程 也常被稱之為 render 其實 渲染 繪製 畫畫 這三個詞是乙個意思.對應的英文是render,draw,paint.但 渲染 的逼格要高於 繪製 繪製 的逼格要高於 畫畫 我是比較傾向把渲染這個...
Ext元件渲染render的全
模板模式是設計模式中很重要的乙個知識點,在物件導向設計中有著舉足輕重的地位。在ext中更是發揮的淋漓盡致,為什麼這麼說呢?ext中的元件有著很深的繼承關係,很多方法都有著重複,而且不僅 是 上的重複,更多的是流程上的重複 比方說,ext.panel吧,將乙個panel顯示在瀏覽器中,其過程叫做ren...