我試圖使用軌道單元寶石(https://github.com/apotonick/cells),但是我在控制器和的視圖中渲染單元時遇到了一些問題。使用隱式模型從控制器渲染軌道單元
這是我的手機(簡體):
class AcquiredSkillsCell < Cell::ViewModel
def show
render
end
def has_acquired_skills?
model.count > 0
end
end
和一個標準的ERB視圖中我能細胞是這樣的:
<%= cell(:acquired_skills, wh.acquired_skills).show %>
而且細胞呈現就好了。
但在代碼中的其他地方,我需要從控制器渲染這個單元格(由於AJAX調用),我無法弄清楚API。
調用同樣的方式作爲視圖導致無法正常工作 - 軌道不渲染單元調用的結果,而是尋找基於控制器的方法名
模板調用它像這樣:
render_cell(:acquired_skills, wh.acquired_skills).show
給出了:一個AbstractController :: ActionNotFound(行動 '#' 不能爲AcquiredSkillsCell找到)
調用它像這樣:
render_cell(:acquired_skills, :show, @work_history.acquired_skills)
給出:引發ArgumentError在AcquiredSkillsController#創建錯誤的參數數目(1 0)
這意味着它是傳遞一個參數的演出方法......我可以定義放映的說法,但後來我贏了」 t獲取隱式模型實例變量。
任何想法?我認爲這將是更容易,如果我能找到的API文檔render_cell:/
山姆
所以,我發現我可以把它像這樣工作: 渲染HTML:電池(:acquired_skills,@ work_history.acquired_skills).show,CONTENT_TYPE: 'text/html的' 我必須明確,否則添加CONTENT_TYPE它返回了text/javascript,並且這樣做阻止了我的AJAX表單回調被觸發, 這有效,但它並不感覺特別幹。 – 2015-04-06 08:43:50