活动记录:添加"访问"计数器上的计数器

时间:2016-05-29 19:52:40

标签: ruby-on-rails ruby

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

1 个答案:

答案 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