2016-05-29 5 views
0

私は現在、「phone_number」と「visit」属性が整数であるSubscriberモデルを持っています。私はphone_numberが存在するかどうかを言うphone_numberに加入者のタイプを持つ "チェックイン"ビューフォームを設定したいですか?訪問属性に1を加えます。したがって、SQLクエリを実行し、その数値がデータベースに含まれているかどうかを確認します。アクティブレコード:モデルに「訪問」カウンタを追加する

さらに明確にするには、作成アクションが新しいサブスクライバに対してすでに行われているため、RESTアクションを中断する必要があります。私はかなりレールに新しく、私はこの機能を理解するのに非常に苦労しています。これが可能なのか、これをどうやって実装するべきなのか不思議ですね。ここで

は、現時点では私のコントローラである。これらの線に沿って

class SubscribersController < ApplicationController 
def index 
    @subscriber = Subscriber.all 
    end 

    def new 
    @subscriber = Subscriber.new 
    end 

    def create 
    @subscriber = Subscriber.create(subscriber_params) 
    if @subscriber.save 
    flash[:success] = "Subscriber Has Been successfully Created" 
    redirect_to new_subscriber_path(:subscriber) 
    else 
    render "new" 
    end 
    end 

    def visit 
    end 

    private 

    def subscriber_params 
    params.require(:subscriber).permit(:first_name, :last_name, :email, :phone_number) 
    end 
end 

答えて

1

何か?

def visit 
    subscriber = Subscriber.find_by_phone_number(params[:phone_number]) 
    if subscriber 
    subscriber.visit += 1 
    subscriber.save 
    end 
end 

visit用(DB /移行を経由して)デフォルト値は0です

に設定されているあなたががRESTスタイルのコントローラを分割する必要がないことを確認します。そのチェックを行う別のコントローラを作成することができます。たとえば、次のようなものがあります。

class Subscriber::VisitController < ApplicationController 
    def create 
    # code here 
    end 
end 
+0

ありがとう、助けてください。どのようなコードは、サブコントローラの作成メソッドで行く必要がありますか? – Bitwise

+0

'' 'visit'''メソッドと同じです。 –

+0

私はあなたの提案を実装しているので、私はこれらのコンセプトのほとんどが新しいです。私はエラーに陥っています。私の最新のものは初期化されていません。URLにvisit/newを呼び出そうとしたときのサブスクライバ – Bitwise

関連する問題