12

Rails でファイルのアップロードの問題に遭遇しました。file_field :fileで使用できるヘルパーを見つけましたform_for(@some_model)。ただし、これらのタグは一括割り当てによってモデルを作成/編集するために使用されるため、この場合の使用法は見つかりません。私の知る限り、 fileupload を典型的なフィールドとして扱う可能性はありません(Multipart Form を使用して Ruby on Rails 3 でファイルのアップロードが機能しないを参照)。このような場合、アップロードしたファイルを手動で操作する必要があります。では、なぜ誰かがモデル編集の一部としてファイルのアップロードをしたいのでしょうか?

写真.rb

   class Photo < ActiveRecord::Base
       attr_accessible :name, :filename,
   end

photo_form.html.erb

<%= form_for(@photo, :multipart => true) do |f| %>

  <%= f.label :name %> 
  <%= f.text_field :name %>

  <%= f.file_field :file %>

  <%= f.submit %>

<% end %>

photos_controller.rb

def create
    @photo = Photo.new(params[:photo])

:file 属性がないため、上記の行は失敗します。から手動で削除する前に処理する必要があります:params。もう一度-そのようなタグの実際の使用法はありますか?

4

2 に答える 2

5

私がそれをどのように使用しているかの例を示します。それ自体は十分に説明していると思います。これが役立つことを願っています

 <%= form_for @item do |f|%>
    <%= f.file_field :photo, accept: 'image/png,image/jpeg'%>
 <% end %>

ご不明な点がございましたらお知らせください

于 2016-10-09T00:04:39.180 に答える