加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – ActiveAdmin – 如何从partials访问实例变量?

发布时间:2020-12-16 19:30:14 所属栏目:百科 来源:网络整理
导读:我似乎无法访问部分中的实例对象.例: 在控制器我有: ActiveAdmin.register Store do sidebar "Aliases",:only = :edit do @aliases = Alias.where("store_id = ?",params[:id]) render :partial = "store_aliases" endend 然后在_store_aliases.html.erb部
我似乎无法访问部分中的实例对象.例:

在控制器我有:

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 %>

这不起作用.唯一有用的东西(由于我在视图中放置逻辑,这是可怕的):

<% @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传递局部变量”部分).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读