我正在尝试使用 Rails Cell Gem ( https://github.com/aponick/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。
以与视图结果相同的方式调用它不起作用 - rails 不会呈现单元调用的结果,而是根据控制器的方法名称查找模板
像这样称呼它:
render_cell(:acquired_skills, wh.acquired_skills).show
给出:AbstractController::ActionNotFound(无法为 AcquiredSkillsCell 找到操作“#”)
像这样称呼它:
render_cell(:acquired_skills, :show, @work_history.acquired_skills)
给出:AcquiredSkillsController 中的 ArgumentError#create 错误数量的参数(1 代表 0)
这意味着它将参数传递给 show 方法......我可以用参数定义 show,但是我不会得到隐式模型实例变量。
有任何想法吗?如果我能找到 render_cell 的 API 文档,我认为这会更容易:/
山姆