2016-05-29 69 views
0

我目前有一個Subscriber模型,其中包含一個「phone_number」和一個「訪問」屬性,它是一個整數。我想設置一個「check in」視圖表單,在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

感謝您的幫助@pascal betz。任何建議什麼代碼應該在子控制器中的創建方法? – Bitwise

+0

與'''visit'''方法相同。 –

+0

我對這些概念中的大多數都不熟悉,因爲我正在實施您的建議我不斷遇到錯誤我最新的一個是未初始化的常量訂閱者當我嘗試調用訪問/ url中的新訪問時 – Bitwise