Ruby on rails 回形针未定义方法`title_file_name';Rails 4.0.1中的错误
我按照回形针github页面上的手册安装了它,得到了给定的错误。我做错了什么 我有4个输入字段:标题(Ruby on rails 回形针未定义方法`title_file_name';Rails 4.0.1中的错误,ruby-on-rails,file-upload,ruby-on-rails-4,paperclip,Ruby On Rails,File Upload,Ruby On Rails 4,Paperclip,我按照回形针github页面上的手册安装了它,得到了给定的错误。我做错了什么 我有4个输入字段:标题(文本字段)、描述(文本区域)、价格(文本字段)和图像(文件字段)。为什么我甚至会收到带有前缀title的错误?title字段与它有什么关系,可能有冲突吗?我确实创建并运行了迁移,所以我觉得这真的有点奇怪 谢谢你的帮助。谢谢 编辑: 迁移情况如下: class AddImageColumnsToProducts < ActiveRecord::Migration def change
文本字段
)、描述(文本区域
)、价格(文本字段
)和图像(文件字段
)。为什么我甚至会收到带有前缀title
的错误?title
字段与它有什么关系,可能有冲突吗?我确实创建并运行了迁移,所以我觉得这真的有点奇怪
谢谢你的帮助。谢谢
编辑:
迁移情况如下:
class AddImageColumnsToProducts < ActiveRecord::Migration
def change
add_attachment :products, :image
end
end
型号:
class Product < ActiveRecord::Base
has_attached_file :image, :styles => { :medium => "600x600>", :thumb => "258x258>" },
:default_url => "images/:style/:slug.png"
validates :title, :content, :image, :attachment_presence => true
validates_with AttachmentPresenceValidator, :attributes => :image
end
def create
@product = Product.new(product_params)
@product.image = params[:product][:image]
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: 'Product was successfully created.' }
format.json { render action: 'show', status: :created, location: @product }
else
format.html { render action: 'new' }
format.json { render json: @product.errors, status: :unprocessable_entity }
end
end
end
问题在于您的验证。写着
validates :title, :content, :image, :attachment_presence => true
假定标题、内容和图像为3个基于图像的属性。但是,我知道只有“图像”是基于图像的字段。因此,您的代码应该是:
validates :title, :content, :presence=>true
validates :image, :attachment_presence => true
此外,我在请求日志中没有看到“内容”字段。我猜,你的意思是“描述”。确保模型验证、数据库架构和视图文件中的属性名称相同。是否可以显示包含图像的表的参数和表列?是否也可以粘贴准确的错误。谢谢您的错误。你也可以把型号代码贴出来吗。我想知道您是否在您的模型中正确使用了回形针。另外,请张贴控制器代码。你是做了一个普通的@product=product.new(params[:product])还是什么花哨的东西?如果你更新了问题,请在这里发表评论。这是你修改后我得到通知的唯一方式。@SatyaKalluri更新了它:)谢谢你,修复了它!
validates :title, :content, :presence=>true
validates :image, :attachment_presence => true