Tôi gặp phải vấn đề tải tệp lên trong Rails. Tôi đã tìm thấy trợ giúp file_field :file
, có thể được sử dụng với form_for(@some_model)
. Tuy nhiên, tôi không thể tìm thấy bất kỳ cách sử dụng nào cho trường hợp này, vì các thẻ này được sử dụng để tạo/chỉnh sửa một số mô hình, bằng cách gán khối lượng. Có, AFAIK, không có khả năng để xử lý tập tin tải lên như là trường điển hình (Xem File upload won't work in Ruby on Rails 3 using Multipart Form). Trong trường hợp này, thao tác thủ công trên tệp được tải lên là bắt buộc. Vì vậy, tại sao một ai đó thậm chí muốn đặt một tập tin tải lên như là một phần của chỉnh sửa mô hình?Ruby On Rails: ví dụ về file_field trên form_for
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
def create
@photo = Photo.new(params[:photo])
dòng trên thất bại, vì theres no: tập tin thuộc tính. Nó phải được xử lý trước và bị xóa theo cách thủ công từ :params
. Một lần nữa - có sử dụng thực sự cho các thẻ như vậy không?
Hey, nếu bạn có có bất kỳ ý tưởng nào về cách tải tệp lên bằng form_for khi có các trường và nhãn khác, vui lòng chia sẻ tệp tại đây. Thậm chí tôi đang cố gắng để làm công việc này. – learner
Và nó sẽ là tốt đẹp nếu không có cần phải sử dụng bất kỳ đá quý. – learner
Điều gì sẽ xảy ra nếu bạn thử 'attr_accesible: name,: file' và trong chế độ xem của bạn' <% = f.file_field: filename%> '? – mmichael