Ruby on Rails:在视图上显示模型属性

时间:2015-04-22 18:32:50

标签: ruby-on-rails ruby model-view-controller

所以我创建了一个用户模型和商店模型。我在显示已在我的数据库中创建的商店名称时遇到问题。这是一个非常愚蠢的问题,有一个非常简单的解决方案,但我无法弄清楚我做错了什么。所以这是我的用户控制器,在那里我找到了我要显示的商店:

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的商店。非常感谢任何帮助!

3 个答案:

答案 0 :(得分:4)

要使用ERB输出内容,您需要向ERB块添加=

<%= @store.name %>

答案 1 :(得分:0)

像这样,

<li><%= @store.name %></li>

答案 2 :(得分:0)

让我们看看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