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传递局部变量”部分). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |