Natknąłem się na problem z przesyłaniem plików w Railsach. Znalazłem pomocnika file_field :file
, który może być używany z form_for(@some_model)
. Jednak nie mogę znaleźć żadnego zastosowania w tym przypadku, ponieważ te znaczniki są używane do tworzenia/edycji niektórych modeli, poprzez przypisywanie mas. Nie ma, AFAIK, nie ma możliwości traktowania fileupload jako typowego pola (zobacz File upload won't work in Ruby on Rails 3 using Multipart Form). W takim przypadku wymagana jest ręczna obsługa przesłanego pliku. Dlaczego więc ktoś chciałby umieścić plikuploadload jako część edycji modelu?Ruby On Rails: przykład file_field na formularzu dla
photo.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 powyżej
def create
@photo = Photo.new(params[:photo])
linia nie powiedzie się, ponieważ tam nie ma: atrybut pliku. To musi być obsługiwane przed i ręcznie usunięte z :params
. Po raz kolejny - czy istnieje jakieś rzeczywiste użycie takich tagów?
Hej, jeśli masz Mam pomysł na to, jak przesłać plik za pomocą form_for, mając inne pola i etykiety, proszę udostępnić go tutaj. Nawet próbuję to zrobić. – learner
I byłoby miło, gdyby nie było potrzeby używania żadnego klejnotu. – learner
Co się stanie, jeśli spróbujesz 'attr_accesible: name,: file' oraz w twoim widoku' <% = f.file_field: filename%> '? – mmichael