如何从另一个控制器局部访问实例变量

时间:2019-03-07 10:06:13

标签: ruby-on-rails variables instance-variables

我一直在尝试从一个控制器/视图访问实例变量到另一个控制器/视图。

ProductsController

def index
  @searcher = build_searcher(params.merge(include_images: true))
  @products = @searcher.retrieve_products
end

我想访问@products部分中的_header.html.erb,这是主布局页面application.html.erb的一部分。

1 个答案:

答案 0 :(得分:1)

在局部变量中传递局部变量,以使其在多个地方都可以使用始终是一个好习惯。因此,您应该在局部变量内的局部变量内传递@products-

除非我缺少某些变量,否则应使用@products代替@product,因为index动作具有@products

= render partial: 'header', locals: {product: @product}

在_header.html.erb product中,可以访问本地变量@product