只是没有得到它,我一直在关注一个教程,它只是不适合我,有人可以帮我解决这个问题吗?感谢
它提交并且不返回任何错误,但实际上没有任何内容插入到表中。
SQL
create_table "photos", :force => true do |t|
t.string "description"
t.string "content_type"
t.string "filename"
t.binary "binary_data"
end
.RB
class Photo < ActiveRecord::Base
attr_accessible :photos, :photo, :description
attr_writer :photos, :photo, :description
def image_file=(input_data)
self.filename = input_data.original_filename
self.content_type = input_data.content_type.chomp
self.binary_data = input_data.read
end
end
控制器(部分代码)我认为这段代码错了,它是自动生成的。该教程没有说必须修改它。
def create
@photo = Photo.new(:photo => params[:photo])
respond_to do |format|
if @photo.save
format.html { redirect_to @photo, notice: 'Photo was successfully created.' }
format.json { render json: @photo, status: :created, location: @photo }
else
format.html { render action: "new" }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
end
视图
<%= form_tag ({:action => "create"}) %>
<%= file_field_tag "photo" %>
<%= submit_tag "Save" %>
<%= form_tag %>
答案 0 :(得分:0)
问题可能在您看来。请尝试使用form_for
代替form_tag
<%= form_for @photo do |f| %>
<%= f.file_field :photo %>
<%= f.submit "Save" %>
<% end %>
你的form_tag
符号也是错误的。试试这个
<%= form_tag({:action => "create"}) do %>
<%= file_field_tag "photo" %>
<%= submit_tag "Save" %>
<% end %>