Ruby on rails 载波直达无更新_属性方法
所以我使用的是carrier wave direct,现在我需要更新uploader对象上的“key”属性。以下是网站上的相关行: 上传到S3后,您需要在控制器操作中使用返回的键更新uploader对象,该键对应于新的用户url:Ruby on rails 载波直达无更新_属性方法,ruby-on-rails,amazon-s3,paperclip,carrierwave,Ruby On Rails,Amazon S3,Paperclip,Carrierwave,所以我使用的是carrier wave direct,现在我需要更新uploader对象上的“key”属性。以下是网站上的相关行: 上传到S3后,您需要在控制器操作中使用返回的键更新uploader对象,该键对应于新的用户url: @uploader.update_attribute :key, params[:key] 问题是我的@uploader对象没有update\u属性方法。事实上,当我查看@uploader对象上的所有方法时,我看到了key()和key=()之类的方法,但没有upda
@uploader.update_attribute :key, params[:key]
问题是我的@uploader对象没有update\u属性方法。事实上,当我查看@uploader对象上的所有方法时,我看到了key()和key=()之类的方法,但没有update_属性
知道发生了什么吗?我是否错过了使update\u attribute方法可用所需执行的一些设置步骤?我通过在模型上调用update\u attribute而不是在上传器上调用来实现它。在下面截取的@uploader中,CarrierWave::uploader::Base和@video的子类就是模型
def upload
@uploader = Video.new.asset
@uploader.success_action_redirect = videos_upload_successful_url
end
def upload_successful
@video = Video.new
@video.update_attribute :key, params[:key] # different than documentation!!
@video.save
end
这似乎与文档相反,文档中记录的是您尝试它的方式。我通过调用模型上的update_属性而不是上传程序来实现它。在下面截取的@uploader中,CarrierWave::uploader::Base和@video的子类就是模型
def upload
@uploader = Video.new.asset
@uploader.success_action_redirect = videos_upload_successful_url
end
def upload_successful
@video = Video.new
@video.update_attribute :key, params[:key] # different than documentation!!
@video.save
end
这似乎与您尝试的文档记录方式相反。我也遇到了同样的问题,但我解决了添加新列的问题。 我想你需要添加另一个专栏,比如
avatar\u image\u url
,除了avatar
之外,它被用作mount\u上传器:avatar,AvatarUploader
控制器是这样的:
class ProfilesController < ApplicationController
before_action :setup_context
def edit
@uploader = @profile.avatar
@uploader.success_action_status = '201'
end
def update
if @profile.update_attributes(profile_params)
redirect_to home_path
else
render :edit
end
end
private
def setup_context
@profile = current_user
end
def profile_params
params.require(:user).permit(:name, :avatar_image_url)
end
end
您可以像这样引用图像
<%= image_tag @user.avatar_image_url %>
你也可以看看这个
我也遇到了同样的问题,但我解决了这个问题,添加了新列。 我想你需要添加另一个专栏,比如
avatar\u image\u url
,除了avatar
之外,它被用作mount\u上传器:avatar,AvatarUploader
控制器是这样的:
class ProfilesController < ApplicationController
before_action :setup_context
def edit
@uploader = @profile.avatar
@uploader.success_action_status = '201'
end
def update
if @profile.update_attributes(profile_params)
redirect_to home_path
else
render :edit
end
end
private
def setup_context
@profile = current_user
end
def profile_params
params.require(:user).permit(:name, :avatar_image_url)
end
end
您可以像这样引用图像
<%= image_tag @user.avatar_image_url %>
你也可以看看这个
您将什么分配给
@uploader
您将什么分配给@uploader