2016-06-20 15 views
1

現在、Subscriberの属性をインクリメントする方法があります。 intをとるvisit属性です。私の質問です - Subscriberに最後に訪問属性が更新されていますか?コンソールでは、このような何かが表示されます - Subscriber.find("visit +=1").last < - 完全に間違っていますが、私はそれはちょっとそんな感じでしょうか?誰も私がコンソールでこれをどのように呼び出すことができるか知っていますか?どんな助けも素晴らしいだろう。レールの特定のフィールド/属性のカスタムupdated_at

コントローラ方法:

def visit 
    @subscriber = Subscriber.find_by(params[:phone_number]) 
    if @subscriber 
    @subscriber.visit ||= 0 
    @subscriber.visit += 1 
    @subscriber.save 
    flash[:notice] = flash[:notice] = "Thank You #{@subscriber.first_name}. You have #{@subscriber.days_till_expired} until renewal" 
    redirect_to subscribers_search_path(:subscriber) 
    else 
    render "search" 
    end 
end 

あなたは、私が最後にそのオブジェクトに訪問属性を更新するには、このメソッドを使用する加入者を呼び出すしたいと思います見ることができるように。あなたがより多くの情報を必要とするかどうかを教えてください。

+1

上記のメソッドが呼び出されたときにのみ更新される特殊なタイムスタンプフィールドを持たない限り、あなたはできません。 – potashin

+0

Railsは最後の変更日をテーブルに自動的に格納します。だからあなたはそれを並べ替えて最初のレコードを得ることができます。 –

+0

'find_by'が間違っているようです。おそらく' Subscriber.find_by(phone_number:params [:phone_number]) 'を実行する必要があります。 –

答えて

2

あなたは常にこのような最後に更新された項目を取得することができます::visit以外が更新された場合でも、

Subscriber.order('updated_at desc').first 

しかし:updated_atが更新されます。だから私たちのために仕事をするカスタムフィールドを追加するために少しのマイグレーションを書く必要があります。私たちのテーブルに:last_visitedを追加する

rails g migration AddLastVistedToSubscriber last_visited:datetime 

実行すくいdb:migrate。今度は、+1〜:visitを実行するたびに、そのフィールドを更新する必要があります。

def visit 
    @subscriber = Subscriber.find_by(params[:phone_number]) 
    if @subscriber 
    @subscriber.visit ||= 0 
    @subscriber.visit += 1 
    if @subscriber.save 
     @subscriber.touch(:last_visited) #this will update the last_visited with the update time 
     flash[:notice] = flash[:notice] = "Thank You #{@subscriber.first_name}. You have #{@subscriber.days_till_expired} until renewal" 
     redirect_to subscribers_search_path(:subscriber) 
    end 
    else 
    render "search" 
    end 
end 

今、私たちはsubscriber:visitが最後にインクリメントされた簡単に検索することができます。

Subscriber.order('last_visited desc').first 
+0

あなたはロック!私はこの時点であなたにお金を借りているように感じる – Bitwise

+0

応援!お役に立てて嬉しいです。 – Kumar

関連する問題