簡體   English   中英

在一個控制器中兩個創建動作-Rails

[英]Two Create actions in one controller - Rails

當前,我有一個Subscribers控制器,該控制器具有一個newindex並為訂戶create動作。 該功能現在非常基本。 我也有一個subscriber模型,其中包含所有常規信息,包括phone_number 我想要一個新的表單,該表單將簡單地接收訂戶phone_number並將1添加到我在訂戶模型上設置的特定訂戶的visit整數。 為了清楚起見,這是我當前的代碼。 是否有可能從根本上更新鍵入其號碼的訂戶並向訪問整數加1?

控制器

 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
   @subscriber = Subscriber.find_by_phone_number(params[:phone_number])
 if @subscriber
   @subscriber.visit += 1
   redirect_to subscribers_visits_new_path(:subscriber)
 else
   render "new"
 end
end

模型

class Subscriber < ActiveRecord::Base
validates :first_name, presence: true
validates :last_name, presence: true
validates :email, presence: true
validates :phone_number, presence: true

def date_joined
  created_at.strftime("%-m/%-d/%-y")
end

def expiration_date
  (created_at + 1.year).strftime("%-m/%-d/%-y")
end
end

當然是的。 我建議您使用操作的網址(訪問)進行創建。

然后在您的控制器中,您只需要做

@subscriber.update_attribute(:visit, @subscriber.visit+1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM