我在使用不同的控制器渲染动作时遇到了麻烦。
我想从TagsController
渲染索引操作class TagsController < ApplicationController
def index
@tags = Tag.all
end
end
在tags / index.html.slim中,它成功从db返回对象。
= @tags
=>#<Tag::ActiveRecord_Relation:0x007ff7c65ca060>
所以我在users / new.html.slim中尝试了这段代码。
= render :template => "tags/index"
它没有显示任何内容。谁能告诉我什么是错的?
一切都有帮助,谢谢!
答案 0 :(得分:0)
您可以从控制器渲染模板,而不是从视图中渲染模板。喜欢这个
class TagsController < ApplicationController
def index
@tags = Tag.all
render :template => "tags/index"
end
end
答案 1 :(得分:0)
如果你放,
render :template => "tags/index"
在控制器中,它将查找目录和文件,如:
views/tags/index.html.erb
因为您可以从 @tags 中提取数据。
答案 2 :(得分:0)
解决了它。我刚使用了before_filter方法。
before_filter :load_categories, only: [:index]
# your public controller methods
private
def load_categories
@categories = Category.all
end
我想这不是完美的方式,它不是从不同的控制器调用动作。我也会尝试其他答案。