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