2016-05-30 33 views
0

現在、Subscribersコントローラーがあり、サブスクライバにはnewindexおよびcreateアクションがあります。この機能は現在非常に基本的です。私もphone_numberを含むすべての定期的な情報を取り入れるsubscriberモデルを持っています。私は単純に加入者のphone_numberを受け取り、加入者モデルに設定したその特定の加入者のためにvisit整数に1を加える新しいフォームが必要です。ここにわかりやすくするための私の現在のコードです。これは、基本的に、番号を入力した訪問者を更新し、訪問者の整数に1を追加することは可能ですか?もちろん1つのコントローラで2つのアクションを作成する - Rails

CONTROLLER

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 
    @subscriber = Subscriber.find_by_phone_number(params[:phone_number]) 
if @subscriber 
    @subscriber.visit += 1 
    redirect_to subscribers_visits_new_path(:subscriber) 
else 
    render "new" 
end 
end 

MODEL

class Subscriber < ActiveRecord::Base 
validates :first_name, presence: true 
validates :last_name, presence: true 
validates :email, presence: true 
validates :phone_number, presence: true 

def date_joined 
    created_at.strftime("%-m/%-d/%-y") 
end 

def expiration_date 
    (created_at + 1.year).strftime("%-m/%-d/%-y") 
end 
end 
+0

行う必要がありますか?それは単にカウンターですか?私は訪問が別のコントローラ/モデルとは別のリソースでなければならないと感じています。 – heartlandcoder

答えて

1

ことがあります。私はあなたの行動のURL(訪問)を作成することをお勧めします。

そして、あなたのコントローラであなたはちょうどあなたが追跡する必要があるの訪問についてのその他の情報はありません

@subscriber.update_attribute(:visit, @subscriber.visit+1) 
関連する問題