我有一个像这样的模型:
# == Schema Information
#
# Table name: s3_files
#
# id :integer not null, primary key
# owner :string(255)
# notes :text
# created_at :datetime not null
# updated_at :datetime not null
# last_accessed_by_user :string(255)
# last_accessed_time_stamp :datetime
# upload_file_name :string(255)
# upload_content_type :string(255)
# upload_file_size :integer
# upload_updated_at :datetime
#
class S3File < ActiveRecord::Base
#PaperClip methods
attr_accessible :upload
attr_accessor :owner
Paperclip.interpolates :prefix do |attachment, style|
I WOULD LIKE TO ACCESS VARIABLE= owner HERE- HOW TO DO THAT?
end
has_attached_file( :upload,
:path => ":prefix/:basename.:extension",
:storage => :s3,
:s3_credentials => {:access_key_id => "ZXXX",
:secret_access_key => "XXX"},
:bucket => "XXX"
)
#Used to connect to users through the join table
has_many :user_resource_relationships
has_many :users, :through => :user_resource_relationships
end
我在控制器中设置此变量,如下所示:
# POST /s3_files
# POST /s3_files.json
def create
@s3_file = S3File.new(params[:s3_file])
@s3_file.owner = current_user.email
respond_to do |format|
if @s3_file.save
format.html { redirect_to @s3_file, notice: 'S3 file was successfully created.' }
format.json { render json: @s3_file, status: :created, location: @s3_file }
else
format.html { render action: "new" }
format.json { render json: @s3_file.errors, status: :unprocessable_entity }
end
end
end
谢谢,任何帮助都将不胜感激。
答案 0 :(得分:1)
只需使用owner或self.owner即可获取变量
答案 1 :(得分:0)
您是否尝试过owner
并查看它是否有效?
答案 2 :(得分:0)
此类代码:attr_accessor :owner
在类中生成getter和setter方法,有效地为您提供实例方法。
因此,在您的conrtroller中,如果您有一个名为S3File
的{{1}}实例来阅读所有者,请使用@s3_file
并设置它只需val=@s3_file.owner
如果您想在@s3_file.owner="asdf"
的实现中读取/写入,请转到S3File
或val=self.owner
。 self.owner="asdf"
是可选的。