Ruby on rails 回形针不是';t在继承的模型上存储文件
(我不熟悉回形针) 我有这个模型层次结构: 基本型号:Ruby on rails 回形针不是';t在继承的模型上存储文件,ruby-on-rails,paperclip,single-table-inheritance,sti,Ruby On Rails,Paperclip,Single Table Inheritance,Sti,(我不熟悉回形针) 我有这个模型层次结构: 基本型号: class QuestDescription < ActiveRecord::Base end 图像描述控制器: class ImageDescriptionsController < ApplicationController def new @imgD = ImageDescription.new end def create @imgD=ImageDescription.new(param
class QuestDescription < ActiveRecord::Base
end
图像描述控制器:
class ImageDescriptionsController < ApplicationController
def new
@imgD = ImageDescription.new
end
def create
@imgD=ImageDescription.new(params[:imgD])
if @imgD.save
redirect_to :back, :flash => {:notice => "saved"}
else
redirect_to :back, :flash => {:error => "error"}
end
end
def show
@imgD=ImageDescription.find(params[:id])
end
end
您需要使用多部分HTML标记定义包含某些文件的帖子
<%= semantic_form_for @imgD, :html => { :multipart => true } do |form| %>
<%= form.input :img%>
<%= form.actions %>
<%end%>
{:multipart=>true}do| form |%>
真是愚蠢的错误:
@imgD=ImageDescription.new(params[:imgD])
没有任何意义。。。右行是
@imgD=ImageDescription.new(params[:image_description])
感谢您的回答,但没有任何更改:enctype=“multipart/form data”已经存在于表单的HTML中(我在rails 3.1中读到了一些自动逻辑的内容)
<%= image_tag @imgD.img.url %>
ImageDescription.create(:img => File.new(Rails.root + "public/images/grid.png"))
(0.1ms) begin transaction
SQL (31.9ms) INSERT INTO "quest_descriptions" ("created_at", "img_content_type", "img_file_name", "img_file_size", "img_updated_at", "type", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?) ["created_at", Wed, 15 Feb 2012 00:07:48 UTC +00:00], ["img_content_type", "image/png"], ["img_file_name", "grid.png"], ["img_file_size", 206], ["img_updated_at", Wed, 15 Feb 2012 00:07:48 UTC +00:00], ["type", "ImageDescription"], ["updated_at", Wed, 15 Feb 2012 00:07:48 UTC +00:00] commit transaction
=> #
<%= semantic_form_for @imgD, :html => { :multipart => true } do |form| %>
<%= form.input :img%>
<%= form.actions %>
<%end%>
@imgD=ImageDescription.new(params[:imgD])
@imgD=ImageDescription.new(params[:image_description])