Ruby on rails rails-使用迭代打印文本

Ruby on rails rails-使用迭代打印文本,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在尝试在我的页面中打印一个不可更新的值。 到目前为止,它显示 <%= f.fields_for :ingredients do |builder| %> <fieldset> <%= builder.text_area :name %> </fieldset> <% end %> 我需要它显示一个不可更新的纯文本。所以我试着去做 选择1 <%= f.fields_for :ingredients do |bu

我正在尝试在我的页面中打印一个不可更新的值。 到目前为止,它显示

<%= f.fields_for :ingredients do |builder| %>
 <fieldset>
    <%= builder.text_area :name %>
 </fieldset>
<% end %>

我需要它显示一个不可更新的纯文本。所以我试着去做

选择1

<%= f.fields_for :ingredients do |builder| %>
 <fieldset>
    <%= builder.label :name, "Ingredients" %>
 </fieldset>
<% end %>

但是没有成功。这确实有效: 选择2

<% @recipe.ingredients.each do |ingredient| %>
   <td><%= ingredient.name %></td>
<% end %>


选项1和选项2的主要区别是什么?我更喜欢使用带有
  • 标记的选项1。我做错了什么

    标签用于为字段创建标签,而不是显示其值。选项2正是显示名称字段内容的方式。选项1格式样式是显示文字“成分”而不是“名称”。通常,后面会跟着

    另一个可能的不一致:@recipe.contracents是一个数组,因此没有名为contracents.name的字段。作为测试,请尝试配料[0]。名称

    因此,在选项1中,尝试:

    <% ingredient = @recipe.ingredients[0] %>
    <%= f.fields_for :ingredient do |builder| %>
     <fieldset>
        <%= builder.label :name, "Ingredients" %>
     </fieldset>
    <% end %>
    
    
    
    如果打印了“成分”标签,则您可以打印成分列表,其中包括:

    <td>Ingredients:</td>
    <% @recipe.ingredients.each do |ingredient| %>
       <td><%= ingredient.name %></td>
    <% end %>
    
    成分:
    
    主要区别在于生成的HTML。我不理解你关于“选项1带有
    li
    标签”的评论,因为选项1不是这样做的,而且不清楚你在这方面做了什么,我正在尝试翻出所有成分列表。我已经成功地在测试区域打印了它们(在rails播放之后)但是我在制作一个普通文本时遇到了麻烦,它只打印单词component,而不是成分的名称(值)