活动记录:在模型上添加“访问”计数器

问题描述:

我目前有一个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 

类似的规定?

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