在RubyonRails中将变量传递给视图

在RubyonRails中将变量传递给视图,ruby,ruby-on-rails-5,Ruby,Ruby On Rails 5,如何将@films传递到查看文件films.html.erb并将其显示在查看文件上 def index @films = Film.select("Title, Year").order('created_at DESC'); @htmldoc = File.read(Rails.root.join('app', 'views','films.html.erb')) respond_to do |format| format.html { render ht

如何将
@films
传递到查看文件
films.html.erb
并将其显示在查看文件上

def index
    @films = Film.select("Title, Year").order('created_at DESC');
    @htmldoc = File.read(Rails.root.join('app', 'views','films.html.erb'))
    respond_to do |format|
       format.html { render html: @htmldoc.html_safe}
    end
end

如果要渲染
films.html.erb
文件,则无需打开并读取该文件,只需在
索引
方法中使用
模板
渲染
选项即可

将您的方法稍作调整以适应如下情况:

def index
  @films = Film.select('Title, Year').order('created_at DESC')
  render template: 'view/films'
end

注意
视图
必须与erb文件所在文件夹的名称相匹配。

我认为您不需要
文件。请阅读此处。除非我遗漏了什么,否则您可以在不读取文件的情况下渲染该视图。你能显示
app/views/films.html.erb
的内容吗?我会在
select
order
方法中使用Rails约定,而不是传递字符串<代码>@films=Film。选择(:title,:year)。订单(创建于::desc)