活动记录:在模型上添加“访问”计数器
问题描述:
我目前有一个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
感谢您的帮助@pascal betz。任何建议什么代码应该在子控制器中的创建方法? – Bitwise
与'''visit'''方法相同。 –
我对这些概念中的大多数都不熟悉,因为我正在实施您的建议我不断遇到错误我最新的一个是未初始化的常量订阅者当我尝试调用访问/ url中的新访问时 – Bitwise