Ruby on rails 为什么要将这个ActiveRecord::Relation(一个Composer数组)对象呈现到此视图中?
因此,我在composers_controller.rb中有一个索引操作,如下所示:Ruby on rails 为什么要将这个ActiveRecord::Relation(一个Composer数组)对象呈现到此视图中?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,因此,我在composers_controller.rb中有一个索引操作,如下所示: class ComposersController < ApplicationController def index @composers = Composer.all end def show @composer = Composer.find(params[:id]) end end class composescontroller 正确%> 删除此行中的等号
class ComposersController < ApplicationController
def index
@composers = Composer.all
end
def show
@composer = Composer.find(params[:id])
end
end
class composescontroller
访问时,实例变量将呈现到此视图中
作曲家
出生:
死亡:
但是,当我启动服务器并在浏览器中访问“localhost:3000/composers”时,会呈现以下视图:
那么为什么要渲染底部的数组呢?我有一个线索,这个问题与我正在使用的active_admin gem有关。另外,如果我的application.html.erb有帮助,请参见:
<!DOCTYPE html>
<html>
<head>
<title>Classical Guide</title>
<meta name=viewport content="width=device-width, initial-scale=1 user-scalable=no">
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container main">
<%= yield %>
</div>
<%= render 'layouts/footer' %>
</body>
</html>
经典指南
正确%>
正确%>
删除此行中的等号“=”:
<%= @composers.each do |composer| %>
应该是:
<% @composers.each do |composer| %>
通过包含“=”您告诉erb也要渲染@Composer。因此,实际上迭代器现在做两件事。首先,它会根据您的需要迭代作曲家,但其次,它会呈现@Composer数组。谢谢。对不起,我犯了一个愚蠢的错误,问了这个问题,我保证下次会更彻底。我会在几分钟后检查这个答案,我希望我能检查两个答案。再次感谢。这是正常的。我们总是忘记一些小事。
<% @composers.each do |composer| %>