0
所以,我在這個新的,並試圖通過右跳學習導軌 - 註冊代碼的有效性檢查
我在我的Rails應用程序略顯奇怪的登錄,它是這樣工作的:
-
。
- 管理員生成一個代碼,並指定一個上限
- 用戶通過輸入該代碼登錄和一些細節,其被保存
型號:
class Code < ActiveRecord::Base
has_many :users, dependent: :destroy
attr_accessible :code, :maxusers
end
class User < ActiveRecord::Base
belongs_to :code
attr_accessible :name, :email, :code_id
end
用戶控制器:
class UsersController < ApplicationController
def create
@user = User.new(params[:user])
if @user.save
redirect_to "/welcome"
end
end
end
因此,例如代碼爲123456與5
限制前5個用戶可以使用其姓名,電子郵件報名和123456
所以問題是:如何在保存之前檢查代碼是否有效?它必須存在並且分配的用戶少於5個。
看起來很簡單,但我無法弄清楚語法,我正在控制器中使用before_filter,或者保存在模型中之前,但我卡住了。
謝謝,我喜歡這樣,我會試試看,並讓你知道。這不會檢查代碼表中是否首先存在代碼,但是,我可以同時從用戶模型中檢查該代碼;像'如果定義? Code.find_by_code(:code)'或者什麼? – Jamie
@Jamie是的,你可以通過'exists?'來實現:'如果Code.exists?(代碼:'12345')'。 http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-exists-3F – jdoe
謝謝,它的工作完美。 – Jamie