Ruby - 是否可以在同一个 "view" 文件中创建两个不同的循环?
Ruby - Is it possible to create two different loops in the same "view" file?
我目前正在 Rails 上学习 Ruby 多亏了一个名为 codecademy 的网站,我正在学习如何显示存储在变量中的数据库数组中的信息
练习更正如下:
<div class="main movie-show">
<div class="container">
<div class="movie">
<!-- Display the movie info here -->
<div class="info">
<%= image_tag @movie.image %>
<h3 class="movie-title"><%= @movie.title %></h3>
<p class="movie-release-year"><%= @movie.release_year %></p>
<p class="movie-plot"><%= @movie.plot %></p>
</div>
</div>
<h2>Cast</h2>
<% @actors.each do |actor| %>
<div class="actor">
<%= image_tag actor.image %>
<h3 class="actor-name"><%= actor.first_name %> <%= actor.last_name %></h3>
<p class="actor-bio"><%= actor.bio %></p>
</div>
<% end %>
</div>
</div>
你可以看到在 "movie" 部分,他们直接使用变量来显示所需的信息,而他们将所有 "actor" 的部分存储在另一个 |actor| 中。变量
我的问题如下,因为我在网上没有找到满意的答案,是否可以在同一个文件中以相同的方式使用两个变量?喜欢使用
<% @movies.each do |m| %>
和
<% @actors.each do |a| %>
它仍然有效吗?会不会出错?
您可以在视图中使用任意数量的实例变量,前提是它们已在您的控制器代码中正确定义。
如果您在控制器操作中同时定义了 @actors
和 @movies
实例变量,那么您可以在相应的视图中访问它们。记住:我写的,对应的view。
还有其他方法。例如,如果您定义了 Movie
模型和 Actor
模型之间的关系,并且该关系表明一部电影可以有很多演员。在这种情况下,你只需要在你的控制器中实例化@movies
,然后你就可以通过以下方式访问actors:
<% @movies.each do |movie| %>
<% movie.actors.each do |actor| %>
<%# All other relevant code %>
<% end %>
<% end %>
如果您不了解关系,可以按以下方式定义它们:
class Movie < ActiveRecord::Base
has_many :actors
end
class Actor < ActiveRecord::Base
belongs_to :movie
# actors table should have a column named 'movie_id' for this to work
end
我目前正在 Rails 上学习 Ruby 多亏了一个名为 codecademy 的网站,我正在学习如何显示存储在变量中的数据库数组中的信息
练习更正如下:
<div class="main movie-show">
<div class="container">
<div class="movie">
<!-- Display the movie info here -->
<div class="info">
<%= image_tag @movie.image %>
<h3 class="movie-title"><%= @movie.title %></h3>
<p class="movie-release-year"><%= @movie.release_year %></p>
<p class="movie-plot"><%= @movie.plot %></p>
</div>
</div>
<h2>Cast</h2>
<% @actors.each do |actor| %>
<div class="actor">
<%= image_tag actor.image %>
<h3 class="actor-name"><%= actor.first_name %> <%= actor.last_name %></h3>
<p class="actor-bio"><%= actor.bio %></p>
</div>
<% end %>
</div>
</div>
你可以看到在 "movie" 部分,他们直接使用变量来显示所需的信息,而他们将所有 "actor" 的部分存储在另一个 |actor| 中。变量
我的问题如下,因为我在网上没有找到满意的答案,是否可以在同一个文件中以相同的方式使用两个变量?喜欢使用
<% @movies.each do |m| %>
和
<% @actors.each do |a| %>
它仍然有效吗?会不会出错?
您可以在视图中使用任意数量的实例变量,前提是它们已在您的控制器代码中正确定义。
如果您在控制器操作中同时定义了 @actors
和 @movies
实例变量,那么您可以在相应的视图中访问它们。记住:我写的,对应的view。
还有其他方法。例如,如果您定义了 Movie
模型和 Actor
模型之间的关系,并且该关系表明一部电影可以有很多演员。在这种情况下,你只需要在你的控制器中实例化@movies
,然后你就可以通过以下方式访问actors:
<% @movies.each do |movie| %>
<% movie.actors.each do |actor| %>
<%# All other relevant code %>
<% end %>
<% end %>
如果您不了解关系,可以按以下方式定义它们:
class Movie < ActiveRecord::Base
has_many :actors
end
class Actor < ActiveRecord::Base
belongs_to :movie
# actors table should have a column named 'movie_id' for this to work
end