Ruby on rails 轨道3中的挡块

Ruby on rails 轨道3中的挡块,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Ruby On Rails 3.2,我的看法是: <%= form_tag(rate_url) do %> <%= hidden_field_tag :prod_id, params[:product_id] %> <%= hidden_field_tag :rating_set_id, params[:rating_set_id] %> <span class = "heading"> Recommendations </span> <div>

我的看法是:

<%= form_tag(rate_url) do %>
  <%= hidden_field_tag :prod_id, params[:product_id] %>
  <%= hidden_field_tag :rating_set_id, params[:rating_set_id] %>
  <span class = "heading"> Recommendations </span>
  <div><%= submit_tag 'Submit Ratings', :class => " btn right" %></div>
  <span id = "rate_more_link">
    <%= link_to "Rate More Products", products_path(:rating_set_id => params[:rating_set_id])%>
  </span>
  <br/>
  <div id ="prods_container">
  <% @recommendations.each do |rec| %>
    <% url_raw = URI.parse("url_to_parse") %>
    <% url = Net::HTTP.get_response(url_raw).body %>
    <% if url.empty? %>
      <% @title          = "Product Unavailable via API" %>
      <% @url            = "#{rec.wmt_id}" %>
      <% @cover_img      = "_180X180.jpg" %>
      <% @price          = "Product Unavailable via API" %>
    <% else %>
      <% begin %>
        <% @response1  = JSON.parse(url) %>
        <% @title          = @response1["ProductName"]%>
        <% @url            = "{@response1["ProductUrl"]}"%>
        <% @cover_img      = @response1["ImagePath"]%>
        <% @price          = @response1["currentItemPrice"]%>
      <% rescue %>
      <% end %>
    <% end %>
    <div id ="prod">
      <span class = "radio_button">
        <%= hidden_field_tag "recommendation_ratings[#{rec.id}][recommendation_id]", rec.id %>
        <%= radio_button_tag "recommendation_ratings[#{rec.id}][rating]", '3'%> Good
        <%= radio_button_tag "recommendation_ratings[#{rec.id}][rating]", '2'%> Fair
        <%= radio_button_tag "recommendation_ratings[#{rec.id}][rating]", '1'%> Bad
        <%= radio_button_tag "recommendation_ratings[#{rec.id}][rating]", '0'%> N/A
      </span>
    <div>
      <a href='<%= @url %>' target="_blank">
        <img src='<%= @cover_img  %>' class='product_image_rec_table'></img>
      </a>
    </div>
    <div class = "rec-desc">
      <div class = "small"><b>Wmt ID: </b><%= rec.wmt_id  %></div>  
      <div class = "small"><b>Title: </b><%= @title  %></div>
      <div class = "small"><b>Price: </b>$<%= @price  %></div>
      <div class = "em">
        <b>Current Rating: </b>
        <% rec.ratings.each do |rating_phin| %>
          <%= rating_phin.label %>
        <% end %></div>
        <br/>
      </div>
      <div id="rec_note_text">
        <%= text_field_tag "recommendation_ratings[#{rec.id}][notes]", "#{rec.notes}" ,:id => "rec_note_text", :placeholder => 'Enter Notes..'%>
      </div>
    </div>
    <% end %>
  <% end %>
</div>

建议
“btn右键”%>
参数[:额定值集id])%>

好 公平的 坏的 不适用 Wmt ID: 标题: 价格:$ 电流额定值:
“记录注释文本”:占位符=>'输入注释..%>

我正试图将
当前评级
块移到末尾,以便调用
文本字段标记
中的
评级
变量,但是当我将
移到视图末尾时,
当前评级
块之后的所有内容都不会被渲染。我做错了什么?如何更新视图末尾的
text\u字段标记中的
rating\u phin.notes
而不是
rec.notes

rating\u phin
变量仅存在于该
每个
循环的范围内

如果以后需要,则必须再次循环:

<div id="rec_note_text">
  <% rec.ratings.each do |rating_phin| %>
    <%= text_field_tag "recommendation_ratings[#{rec.id}][notes]", "#{rec.notes}" ,:id => "rec_note_text", :placeholder => 'Enter Notes..'%>
  <% end %>
</div>

“记录注释文本”:占位符=>'输入注释..%>
我不知道为什么您会认为移动
标记是正确的做法


如果您在ERB中迷失了方向,考虑到HTML可能会变得多么繁琐和复杂,这并不是特别困难,尤其是当其中包含实时Ruby时,您可能想尝试一下。它将把这减少到大约一半的行数,并清除大量的
和关闭标签碎片,这些碎片会使ERB难以读取。

现在,您应该交换最后两行。若要查找损坏的部分,请尝试删除一些部分,直到它开始工作,然后逐个将它们移回。此示例将通过创建一个帮助器方法来管理此处正在进行的大量复杂的变量赋值而受益匪浅。如您所建议,在我的
text\u field\u标记
周围添加另一个块将导致不呈现文本字段。如果它在第一个循环中呈现某些内容,则应在第二个循环中呈现。如果没有,可能是其他东西坏了。谢谢你的帮助!如果仅在
文本字段标记
周围添加块,即使不调用变量,也会导致文本字段标记无法呈现。