:-6ren">
gpt4 book ai didi

ruby-on-rails - ActiveAdmin -- 如何从部分访问实例变量?

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

我似乎无法访问部分中的实例对象。例子:

在 Controller 中,我有:

ActiveAdmin.register Store do
sidebar "Aliases", :only => :edit do
@aliases = Alias.where("store_id = ?", params[:id])
render :partial => "store_aliases"
end
end

然后在 _store_aliases.html.erb 部分我有:
<% @aliases.each do |alias| %>
<li><%= alias.name %></li>
<% end %>

这不起作用。唯一有效的方法(当我将逻辑置于 View 中时,这样做很可怕:
  <% @aliases = Alias.where("store_id = ?", params[:id]) %> 
<% @aliases.each do |alias| %>
<li><%= alias.name %></li>
<% end %>

最佳答案

渲染部分时,您需要主动定义赋予该部分的变量。改变你的线路

render :partial => "store_aliases"


render :partial => "store_aliases", :locals => {:aliases => @aliases }

在你的局部变量中,变量可以作为局部变量(不是实例变量!)访问。您需要通过删除 @ 来调整部分内部的逻辑。 .
<% aliases.each do |alias| %>
<li><%= alias.name %></li>
<% end %>

如需进一步阅读,请查看 API documentation (特别是“3.3.4 传递局部变量”一节)。

关于ruby-on-rails - ActiveAdmin -- 如何从部分访问实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066605/

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