0

updated atデータベース オブジェクトの属性を取得しようとしていますが、うまくいきません。他の属性は取得できますが、updated_atまたはcreated_at属性は取得できません。idまた、属性も取得できないことに気付きました。私の中で宣言してPocket.newいないものは存在しないようです。これが私のコードです:

ちなみにレールは使っていません。と を使用sinatra-activerecordしてsinatraいます。

モデル

class Pocket < ActiveRecord::Base     
    def retrieve(consumer_key) 
        url = "get/"
        pocket_url = join_url(url)
        # time = Time.now.to_i
        token = self.token
        puts consumer_key
        puts self 
        puts time = self.updated_at  #.to_i this is where it happens.
        options = {
            :access_token => token,
            :consumer_key => consumer_key, 
            :since => (time if defined? time)
        }

        hello = RestClient.post pocket_url, options
        # JSON.parse(hello)
    end

コントローラ

get '/auth/pocket/callback' do
      […]

      pocket = Pocket.new(token: @token, user: @user)

DB 移行

class CreatePocket < ActiveRecord::Migration
  def up
    create_table :pockets do |t|
        t.string :user
        t.string :token
        t.timestamps    
    end 
  end

  def down
    drop_table :users
  end
end
4

1 に答える 1

2

idcreated_at、およびupdated_atnil、永続化されていないオブジェクト用になります。これは.new、オブジェクトをまだ保存せずに呼び出すだけで得られるものです。

これらの属性は、呼び出すとすぐに送信されます.save(検証エラーがない場合)。

実際、それは 100% 真実ではありません。updated_at最初の作成/保存では設定されませんが、その後の保存では設定されます。

于 2013-08-18T19:48:25.177 に答える