2011-11-06 2 views
0

의 사진을 여러 번 렌더링하는 것은 문제가 있습니다. 일반적으로 현재 자동차의 사진을 렌더링해야하며 그렇게하므로 여러 번 렌더링해야합니다.이 사진은 5 장입니다. car_id 2와 스크린에 나는이 사진들을 5 번 표시했다. 12345 12,445레일 3에있는 내 양식

내가 사진을 추가하면 12345

12345

는, 다음은 6 시간을 미리 보여줍니다됩니다. 문제는 무엇이며 어떻게 해결할 수 있습니까? 시도해 보았습니다. 이것을 대체하고 대체하십시오. 시간에 대한

Started GET "/cars/2/edit" for 127.0.0.1 at Sun Nov 06 22:50:17 +0200 2011 
    Processing by CarsController#edit as HTML 
    Parameters: {"id"=>"2"} 
    User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 
    SQL (4.1ms) SHOW TABLES 
    Car Load (0.2ms) SELECT `cars`.* FROM `cars` WHERE `cars`.`id` = 2 LIMIT 1 
    CACHE (0.0ms) SELECT `cars`.* FROM `cars` WHERE `cars`.`id` = 2 LIMIT 1 
    Carname Load (0.2ms) SELECT `carnames`.* FROM `carnames` 
    Carmodel Load (0.2ms) SELECT `carmodels`.* FROM `carmodels` 
Rendered shared/_error_messages.html.erb (1.0ms) 
    Upload Load (0.2ms) SELECT `uploads`.* FROM `uploads` WHERE (`uploads`.car_id = 2) 
    Carname Load (0.2ms) SELECT `carnames`.* FROM `carnames` WHERE `carnames`.`id` = 1 LIMIT 1 
    Carmodel Load (0.2ms) SELECT `carmodels`.* FROM `carmodels` WHERE `carmodels`.`id` = 5 LIMIT 1 
Rendered uploads/_upload.html.erb (8.1ms) 
Rendered cars/_show.html.erb (2.7ms) 
WARNING: Can't mass-assign protected attributes: user_id 
Rendered cars/_form.html.erb (460.6ms) 
Rendered welcome/_sliderempty.html.erb (1.0ms) 
Rendered welcome/_footer.html.erb (0.5ms) 

감사 : 여기

은 양식 자체

<%= form_for @car, :html => { :method => :put }, :html => { :multipart => true } do |f| %> 
... 
... 
    <% for photo in @car.uploads %> 
    <div style="width:750px !important;"> 
      <%= f.fields_for :uploads do |photo_fields| %> 
      <%unless photo_fields.object.new_record? %> 
       <div style="width:150px;float:left;"> 
        <%= image_tag(photo_fields.object.photo.url(:thumb)) %> 
        <p><%= photo_fields.check_box :_destroy %> Delete item</p> 
       </div> 
      <% end %> 
      <% end %> 
     </div> 
.... 
... 
<% end %> 

콘솔의 작품이다.

답변

1

그냥 for 루프를 제거하면 fields_for 이미 사진을 반복하므로 두 번 반복해서 사진을 찍을 수 있습니다. 귀하의 코멘트에 대한 응답으로

:처럼 명시 적으로 컬렉션을 통과하려고 :

<%= f.fields_for :uploads, @car.uploads do |photo_fields| %>

그래서 여기 당신은 간다 :

<%= form_for @car, :html => { :method => :put }, :html => { :multipart => true } do |f| %> 
... 
... 
    <div style="width:750px !important;"> 
      <%= f.fields_for :uploads, @car.uploads do |photo_fields| %> 
      <%unless photo_fields.object.new_record? %> 
       <div style="width:150px;float:left;"> 
        <%= image_tag(photo_fields.object.photo.url(:thumb)) %> 
        <p><%= photo_fields.check_box :_destroy %> Delete item</p> 
       </div> 
      <% end %> 
      <% end %> 
     </div> 
.... 
... 
<% end %> 
+0

아니, 이것은 정의되지 않은 메서드 '필드'에 대한 결과 # 오류 – rmagnum2002

+0

내 대답을 편집했는데 다시 확인하십시오 :) – sled

+0

그런데 오류가 발생하면 'f.fields'가 아니라'f.fields_for '가 호출됩니다. – sled