我試圖通過將多個嵌套元素轉換爲產生塊的部分來幹掉我的視圖。我決定從一個簡單的例子開始。爲什麼不能Rails渲染我的部分
筆者認爲:
= render :partial => "../snippets/indented_divs", :locals => {:width => 12} do
%p foo
在app/views/snippets/_indented_divs.html.haml
:
%div.col-sm-1
%div{:class => "col-sm-#{width-2}"}
= yield
%div.col-sm-1
錯誤:
'nil' is not an ActiveModel-compatible object. It must implement :to_partial_path.
我已經看到了這個錯誤的討論,但它涉及到人的努力隱式地將ActiveModel兼容對象轉換爲部分。我不是。我試圖直接打電話給我的部分。
發生了什麼事?
UPDATE
順便說一句,該問題顯然是與產生的塊,而不是找到局部的,因爲當我更新視圖不採取塊...
= render :partial => "/_snippets/indented_divs", :locals => {:width => 12}
%p foo
.. 。我得到...
<div class='col-sm-1'></div>
<div class='col-sm-10'></div>
<div class='col-sm-1'></div>
<p>foo</p>
更新2
原來我可以使這項工作有:
= render :layout => "/snippets/indented_divs", :locals => {:width => 12} do
%p foo
但正如我在實際渲染的部分在這裏,它仍然會是很好的知道爲什麼傳遞塊渲染部分沒有工作。
THX但這不是它 - 將更新我的帖子有更多信息 –
嘗試取悅 –
我做到了,THX - 這是不是 –