2016-03-03 66 views
0

根據最新的設計文件,我增加了額外的參數:name到我的User模型和調整RegistrationsController。它到目前爲止工作,參數採取,我現在可以註冊用戶name,但我如何使這個參數強烈需要?如果我沒有在註冊請求中指定它,它仍然註冊用戶而不設置name(在db中:name = nil)。那麼如何防止這種情況並使name成爲必需?設計:製作額外的參數

這裏是控制器:

class Users::RegistrationsController < Devise::RegistrationsController 
    # Disable CSRF protection 
    skip_before_action :verify_authenticity_token 

    # Be sure to enable JSON. 
    respond_to :html, :json 

    before_action :configure_sign_up_params, only: [:create] 

    protected 

    def configure_sign_up_params 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) 
    end 

end 

回答

1

對於這一點,你必須在註冊表單上應用驗證。你可以用兩種不同的方式爲這個

  • 服務器端驗證

    爲此,您可以使用validates幫手。您可以在用戶模型(user.rb)中添加以下行。有關更多信息,請參閱this link

    validates :name, presence: true 
    
  • 客戶端驗證

    您可以使用JQuery plugin像實現這一功能。

    請參考this鏈接實現的JQuery使用驗證jquery.validate()

+1

謝謝你,需要做「名」,所以我現在必須通過它的請求到服務器。但是,如果我沒有傳遞'name',我仍然得到響應代碼「200」,但我應該是406,以防缺少參數。是否有辦法獲得它? – user1908375

+0

我需要看到這個。讓你知道。 – Shrikant1712