gpt4 book ai didi

ruby-on-rails - 使用隐式模型从 Controller 渲染 Rails 单元

转载 作者:行者123 更新时间:2023-12-01 12:36:18 25 4
gpt4 key购买 nike

我正在尝试使用 Rails Cell Gem ( https://github.com/apotonick/cells ),但我在从 Controller View 渲染单元格时遇到了一些问题。

这是我的手机(简体):

class AcquiredSkillsCell < Cell::ViewModel
def show
render
end

def has_acquired_skills?
model.count > 0
end
end

在标准的 ERB View 中,我可以像这样单元格:

<%= cell(:acquired_skills, wh.acquired_skills).show %>

单元格渲染得很好。

但在代码的其他地方,我需要从 Controller 呈现此单元格(作为 AJAX 调用的结果),但我无法弄清楚 API。

以与 View 结果相同的方式调用它是行不通的 - Rails 不呈现单元格调用的结果,而是根据 Controller 的方法名称查找模板

这样调用:

render_cell(:acquired_skills, wh.acquired_skills).show

给出:AbstractController::ActionNotFound(无法为 AcquiredSkillsCell 找到操作“#”)

这样调用:

render_cell(:acquired_skills, :show, @work_history.acquired_skills)

给出:ArgumentError in AcquiredSkillsController#create wrong number of arguments (1 for 0)

这意味着它将一个参数传递给 show 方法...我可以用一个参数定义 show,但那样我就得不到隐式模型实例变量。

有什么想法吗?如果我能找到 render_cell 的 API 文档,我认为这会更容易:/

山姆

最佳答案

您应该更新到 Cells 4。 Controller 和 View 中的调用是相同的。

html = cell(:comment, @comment).(:show)

然后由您决定如何在 Controller 中使用它 - 单元对 HTTP 一无所知,因此您必须调用 render html: html 或类似的东西。

关于ruby-on-rails - 使用隐式模型从 Controller 渲染 Rails 单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29467596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com