我目前正在学习Ruby on Rails,感谢一个名为codecademy的网站,我正在学习如何从存储到变量中的数据库数组中显示信息
exercice的更正如下所示:
<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>
你可以在“电影”部分看到他们直接拿变量来显示所需的信息,而他们将所有“演员”的部分存放在另一个|演员|变量
我的问题如下,因为我没有在网上找到任何令人满意的答案,是否可以在同一个文件中以相同的方式使用两个变量?喜欢使用
<% @movies.each do |m| %>
和
<% @actors.each do |a| %>
无论如何都会有效吗?会有错误吗?
答案 0 :(得分:2)
您可以在视图中使用任意数量的实例变量,前提是它们已在控制器代码中正确定义。
如果您在控制器操作中定义了@actors
和@movies
个实例变量,那么您可以在相应的视图中访问它们。记住:我写了,相应的观点。
还有其他方式。例如,如果您已经定义了Movie
模型与Actor
模型之间的关系,并且关系表明电影可以包含许多演员。在这种情况下,您只需要在控制器中实例化@movies
,然后就可以通过以下方式访问actor:
<% @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