0

私の見解:

<%= 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>

で変数を呼び出せるようにブロックから最後<% end %>に移動しようとしていますが、ビューの最後に移動すると、ブロックの後のすべてがレンダリングされません。私は何を間違っていますか?ビューの最後でin myではなくを更新するにはどうすればよいですか?Current Ratingrating_phintext_field_tag<% end %>Current Ratingrating_phin.notesrec.notestext_field_tag

4

1 に答える 1

0

その変数は、そのループrating_phinのスコープ内にのみ存在します。each

後で必要になった場合は、再度ループする必要があります。

<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>

<% end %>タグを移動することが正しいことであるとあなたが期待する理由がわかりません。

ERB の内部で迷子になっている場合は、HTML が複雑で複雑になる可能性があることを考えると、特に難しいことではありません。特に、ライブの Ruby が含まれている場合は、HAMLを試してみてください。これにより、行数が約半分に減り、<% %>ERB を読みにくくする傾向がある終了タグの残骸が大幅に削除されます。

于 2013-02-20T04:43:14.713 に答える