Ruby on Rails: 在视图上显示模型属性
Ruby on Rails: Displaying model attribute on view
所以我创建了一个用户模型和一个商店模型。我在显示已在我的数据库中创建的商店名称时遇到问题。这是一个非常愚蠢的问题,有一个非常简单的解决方案,但我无法弄清楚我做错了什么。所以这是我的用户控制器,我可以在其中找到要显示的商店:
def show
@user = User.find(params[:id])
@store = Store.find(1)
end
视图如下:
<% provide(:title, @user.username) %>
<div class="row">
<aside class="col-md-4">
<section class="user_info">
<h1>
<%= gravatar_for @user %>
<%= @user.username %>
</h1>
</section>
</aside>
</div>
<li><% @store.name %></li>
所以用户的名字出现了,没有问题,但由于某种原因,商店的名字没有出现。我知道数据库中有一个 id: 1 的商店。如有任何帮助,我们将不胜感激!
要用ERB输出内容,需要在ERB块中添加一个=
:
<%= @store.name %>
做成这样,
<li><%= @store.name %></li>
让我们看看哪个 ERB
标签做了什么:
<%= %> # Prints the attribute value.
Welcome to <%= @store.name %>!
<% %> # Executes the code.
<ul>
<% @stores.each do |store| %>
<li><%= store.name %></li>
<% end %>
</ul>
<%# %> # Comments out the code.
<%# This is just a comment... %>
Rails 扩展了 ERB,所以你可以使用这个快捷方式来禁止换行:
<% -%> # Avoids line break after expression.
<ul>
<% @stores.each do |store| -%>
<li><%= store.name %></li>
<% end %>
</ul>
如需进一步研究,请参阅 here。
所以我创建了一个用户模型和一个商店模型。我在显示已在我的数据库中创建的商店名称时遇到问题。这是一个非常愚蠢的问题,有一个非常简单的解决方案,但我无法弄清楚我做错了什么。所以这是我的用户控制器,我可以在其中找到要显示的商店:
def show
@user = User.find(params[:id])
@store = Store.find(1)
end
视图如下:
<% provide(:title, @user.username) %>
<div class="row">
<aside class="col-md-4">
<section class="user_info">
<h1>
<%= gravatar_for @user %>
<%= @user.username %>
</h1>
</section>
</aside>
</div>
<li><% @store.name %></li>
所以用户的名字出现了,没有问题,但由于某种原因,商店的名字没有出现。我知道数据库中有一个 id: 1 的商店。如有任何帮助,我们将不胜感激!
要用ERB输出内容,需要在ERB块中添加一个=
:
<%= @store.name %>
做成这样,
<li><%= @store.name %></li>
让我们看看哪个 ERB
标签做了什么:
<%= %> # Prints the attribute value.
Welcome to <%= @store.name %>!
<% %> # Executes the code.
<ul>
<% @stores.each do |store| %>
<li><%= store.name %></li>
<% end %>
</ul>
<%# %> # Comments out the code.
<%# This is just a comment... %>
Rails 扩展了 ERB,所以你可以使用这个快捷方式来禁止换行:
<% -%> # Avoids line break after expression.
<ul>
<% @stores.each do |store| -%>
<li><%= store.name %></li>
<% end %>
</ul>
如需进一步研究,请参阅 here。