gpt4 book ai didi

javascript - 如何让变量从 Controller 持久保存到 js 文件、渲染的部分

转载 作者:行者123 更新时间:2023-12-03 07:12:16 26 4
gpt4 key购买 nike

我正在使用 ajax 和 jQuery 渲染部分查看器。我想根据单击的链接在部分中设置一个变量。

ERB:

<%=link_to "link1", viewer_path(id: Painting.first), remote: true%>
<%=link_to "link2", viewer_path(id: Painting.last), remote: true%>

Controller :

  def viewer
@painting = Painting.find_by(:id)
respond_to do |format|
format.html { redirect_to root_path }
format.js
end
end

viewer.js.erb

$("#viewer").html("<%= escape_javascript(render 'viewer') %>");

_viewer.html.erb

<%= @painting.name %>

但是渲染局部时未设置变量@painting,因此我收到错误。

在 Controller 中定义变量不应该将值传递给部分吗?我做错了什么?

最佳答案

这可能是您的问题:使用Model.find_by时,您需要指定要查找的内容。尝试使用 Model.find,它始终使用模型的 :idModel.find_by_idModel.find_by(id: : id)

在controller#viewer中进行此更新:

@painting = Painting.find(:id)

你是对的,实例变量(@painting)可以在局部中使用。

关于javascript - 如何让变量从 Controller 持久保存到 js 文件、渲染的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36584196/

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