我目前有一个Subscriber
模型,它接收一个" phone_number"和"访问"属性是一个整数。我想设置一个"签入"在phone_number中有一个订阅者类型的视图表单,它会说phone_number是否存在?将1添加到visit属性。因此,它将运行一个SQL查询,并查看该数字是否在数据库中。
为了更清楚,我必须打破REST操作,因为已经为新订阅者采取了创建操作。我对rails非常陌生,而且我很难搞清楚这个功能。我很好奇这是否可能,以及我应该如何实现这个?
目前我的控制器在这里:
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
答案 0 :(得分:1)
这些方面的东西?
def visit
subscriber = Subscriber.find_by_phone_number(params[:phone_number])
if subscriber
subscriber.visit += 1
subscriber.save
end
end
确保visit
的默认值(通过数据库/迁移)设置为0.
您不需要破坏REST样式控制器。您可以创建另一个执行该检查的控制器。例如:
class Subscriber::VisitController < ApplicationController
def create
# code here
end
end