大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – Paperclip错误:缺少需要的模型attr_accessor for’avatar_file_name’,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试上传图片给列表我得到这个错误:
Paperclip::Error in LisTingsController#update LisTing model missing required attr_accessor for 'avatar_file_name'
lisTing_controller的第44行:
def update respond_to do |format| if @lisTing.update(lisTing_params) format.html { redirect_to @lisTing,notice: 'LisTing was successfully updated.' } format.json { head :no_content } else
需要尝试的几件事情:即将一些代码添加到lisTing.rb模型中,以使可接受的图像为:头像更加健壮.这是几个stackoverflow帖子提到添加到lisTing.rb模型:
validates_attachment_content_type :avatar,:content_type => %w(image/jpeg image/jpg image/png)
不幸的是,当我附加图像时,我仍然会收到相同的错误.当我没有附加图像时,我的默认图像加载正常,并且列表正确创建.
我的房源编号:
class LisTing < ActiveRecord::Base has_attached_file :avatar,:styles => { :medium => "150x",:thumb => "100x100>" },:default_url => "default.jpg" validates_attachment_content_type :avatar,:content_type => %w(image/jpeg image/jpg image/png) end
<%= form_for @lisTing,:html => { :multipart => true } do |f| %> <% if @lisTing.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@lisTing.errors.count,"error") %> prohibited this lisTing from being saved:</h2> <ul> <% @lisTing.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <div class="form-group"> <%= f.label :name %><br> <%= f.text_field :name,class: "form-control" %> </div> <div class="form-group"> <%= f.label :company %><br> <%= f.text_field :company,class: "form-control" %> </div> <div class="form-group"> <%= f.label :email %><br> <%= f.text_field :email,class: "form-control" %> </div> <div class="form-group"> <%= f.label :phone %><br> <%= f.text_field :phone,class: "form-control" %> </div> <div class="form-group"> <%= f.label :avatar %><br> <%= f.file_field :avatar,class: "form-control" %> </div> <div class="form-group"> <%= f.submit class: "btn btn-priMary" %> </div> <% end %>
我的lisTing_controller.rb控制器:
def update respond_to do |format| if @lisTing.update(lisTing_params) format.html { redirect_to @lisTing,notice: 'LisTing was successfully updated.' } format.json { head :no_content } else format.html { render action: 'edit' } format.json { render json: @lisTing.errors,status: :unprocessable_entity } end end end ... def lisTing_params params.require(:lisTing).permit(:name,:company,:email,:phone,:avatar) end
和我的scheR_229_11845@a.rb文件
ActiveRecord::scheR_229_11845@a.define(version: 20140329174335) do create_table "lisTings",force: true do |t| t.String "name" t.String "company" t.String "email" t.String "phone" t.datetiR_229_11845@e "created_at" t.datetiR_229_11845@e "updated_at" end end
编辑:在运行$rails之后添加控制台输出生成纸夹列出头像
(我需要10个信誉点放在后,所以你必须解决链接http://i.imgur.com/c8KGTa3.png)
我建议您生成迁移以将头像添加到列表表中,如下所示:
rails generate paperclip lisTing avatar
然后运行rake db:migrate
根据您的评论和编辑,您有一个迁移文件添加头像到您创建的列表表,您通过运行rails生成paperclip用户头像,但不幸的是由于某种原因,它不经过ie,没有头像特定的字段(“avatar_file_name”,根据您的db / scheR_229_11845@a.rb,列表表中的“avatar_content_type”,“avatar_file_size”和“avatar_updated_at”).这是一个非常奇怪的行为.
我建议你按照以下步骤按顺序:
破坏现有迁移(如果有):
rails destroy paperclip lisTing avatar
生成新的迁移:
rails generate paperclip lisTing avatar
跑
rake db:migrate
更新2
我希望你没有投票给我(但有人做了),所以我想提醒一下,这是PaperClip的一个持续的问题,我在我的评论(3月31日)中提出了一个解决方案如下:
显然,没有注意到你或某人谁今天投票给我.
另外,你说没有错误,据我所知,图像在这里:i.imgur.com/c8KGTa3.png但是如果你看输出有一个错误说明清楚:
以上是大佬教程为你收集整理的ruby-on-rails – Paperclip错误:缺少需要的模型attr_accessor for’avatar_file_name’全部内容,希望文章能够帮你解决ruby-on-rails – Paperclip错误:缺少需要的模型attr_accessor for’avatar_file_name’所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。