0

私は次のようなモデルを持っています:

# == 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

ありがとう、助けていただければ幸いです。

4

3 に答える 3

1

owner または self.owner を使用して変数を取得するだけです

于 2012-07-08T15:17:16.007 に答える
0

入れownerて、それが機能するかどうかを試してみましたか?

于 2012-07-08T15:12:36.930 に答える
0

このコード: attr_accessor :ownerin your class は、効果的にインスタンス メソッドを提供するクラスで getter メソッドと setter メソッドを生成します。

したがって、所有者を読み取るためにS3File呼び出されたインスタンスがあるコントローラーでは、使用して設定するだけです@s3_fileval=@s3_file.owner@s3_file.owner="asdf"

S3File単に goval=self.ownerまたはの実装内で読み書きしたい場合self.owner="asdf"。はselfオプションです。

于 2012-07-08T15:19:18.333 に答える