如何在ruby app文件夹中上传图片并在数据库列中插入url

时间:2016-08-03 05:31:41

标签: ruby-on-rails ruby

  

控制器

     

保存对象

如何使用此控制器将图像插入数据库中的任何文件夹和图像URL存储中 BEGIN DELETE FROM mv_log_replica; INSERT INTO mv_log_replica ( pk_col, col1, col2) SELECT pk_col, col1, col2 FROM mlog$_my_tab; /* Call externall process and pass the data */ /* Here instead of mlog$_my_tab use the mv_log_replica table */ DELETE FROM mlog$_my_tab a WHERE EXISTS (SELECT 1 FROM mv_log_replica b WHERE a.pk_col = b.pk_col); COMMIT; END;

def create_json

4 个答案:

答案 0 :(得分:1)

User(Model) mount_uploader :userImage, AvatarUploader

UsersController -> @user = User.new(user_params)
                    if @user.save
                     redirect_to(:action => 'show', id: User.last.id)
                    else
                    render :json => data_hash2, :content_type => 'application/json' 
                    end



class AvatarUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
        "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    end
def extension_white_list
        %w(jpg jpeg gif png) 
    end  end
  

如果您使用Web服务

<form action="http://ruby/controllername/create" lass="new_user" id="new_user" enctype="multipart/form-data" accept-charset="UTF-8" method="post">

答案 1 :(得分:0)

查看以下将文件上传到app / assets / images / people_profile_images文件夹的方法

首先上传图片如下:

@user =User.new(user_params)
  #this will create user form paramaters given
uploaded_file = params[:user][:photo]
#this will add uploaded image or file in uplaoded_fie
if (uploaded_file)
  File.open(Rails.root.join('app/assets', 'images/people_profile_images', uploaded_file.original_filename), 'wb') do |file|
    file.write(uploaded_file.read)
    @user.photo = "/assets/people_profile_images/"+uploaded_file.original_filename
  end
else
  @user.photo = "/assets/people_profile_images/default_avatar.png"
end

然后保存用户

@user.save

答案 2 :(得分:0)

我不知道一种方法可以涵盖两者:图像上传,然后将数据库保存在数据库中。

你可以做其中一个:

1)使用名为paperclip的gem来帮助上传图像文件。

请参阅此链接:

https://github.com/thoughtbot/paperclip#ruby-and-rails

https://teamtreehouse.com/library/image-uploads-in-ruby-on-rails-41(paperclip,carrierwave和dragonfly)

我使用了回形针,它对我来说效果很好。

OR:

2)在您的filename.html.erb中将其作为附加字段包含在您的image_url

使用此功能的一个警告是,这可以更改,并且您无法控制可能在您的网站上显示的图像。因此,image_url应来自信誉良好的CDN,或至少来自信誉良好的用户上传到您的网站。

答案 3 :(得分:0)

在模型中创建列url:string。将其添加为表单中的隐藏字段。使用.js

将其值设置为与remote_url相同

var urladdy = input.remoteurl.val()

input.url.val(urladdy)

这将使用载波上传图像,并将其URL保存为字符串。