2012-12-03 2 views
0

사진을 업로드 할 때이 양식이 있습니다.form_for @ item.subitem.new

<%= form_for Picture.new do |f| %> 
    <%= f.label :file, "Upload Pictures: " %> 
    <%= f.file_field :file, multiple: true, name: "picture[file]" %> 
    <%= f.submit %> 
<% end %> 

나는이 모델과 항목라는 또 다른 모델 사이에 has_many 연결을 위해 지금 노력하고있어 (항목은 많은 사진을 보유하고 있습니다)이 두 모델의 한 가지 형태가있다.

은 내가 할 일은이 같은 것입니다 생각 :

<%= form_for(@item) do |f| %> 

    <div class="field"> 
    <%= f.label :title %><br /> 
    <%= f.text_field :title %> 
    </div> 
    <div class="field"> 
    <%= f.label :keywords %><br /> 
    <%= f.text_field :keywords %> 
    </div> 

    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

# and here goes the same form, just @item.pictures.new instead of Picture.new 

<%= form_for(@item.pictures.new) do |f| %> 
    <%= f.label :file, "Upload Pictures: " %> 
    <%= f.file_field :file, multiple: true, name: "picture[file]" %> 
    <%= f.submit %> 
<% end %> 

하지만이 양식 I 이미지를 제출할 때 - 그것은 그림에 ITEM_ID를 할당하지 않습니다. (나는 has_many를 가지고 있으며 belongs_to가 적절하게 쓰여졌다).

수동으로 item_id를 전달해야합니까? (좋은 생각이라고 생각하지 마라. 내가 소유하고 있지 않은 일부 항목에 사진을 업로드하려고하지 않아야한다.)

+0

"item_id를 수동으로 전달해야합니까?" << 네. "소유하지 않은 항목에 사진을 업로드하려고하지 않아야합니다."<< 예 – apneadiving

+0

ok, thx. 그것이 좋은 생각인지 확실하지 않았습니다. – user1837021

+0

양식에'multipart/form-data' 속성이 누락되어 있지 않습니까? – PinnyM

답변

0

누군가가 호기심을 느끼는 경우를 위해서 - 나는 지나가는 것으로 해결했다. item_id를 다음과 같이 그림에 입력하십시오 :

<%= form_for Picture.new do |f| %> 
    <%= f.label :file, "Upload Pictures: " %> 
    <%= f.hidden_field :item_id, :value => @item.id %> 
    <%= f.file_field :file, multiple: true, name: "picture[file]" %> 
    <%= f.submit %> 
<% end %> 

그림 모델에서 current_user가이 ID로 항목을 소유하고 있는지 확인하십시오.