2015年10月27日 星期二

rails permit是甚麼意思?

請看以下程式碼中間這段
params.require(:user).permit(:first_name, :last_name, :email, :password)

private
  def user_params(藍色字體標示)
    params.require(:user).permit(:first_name, :last_name, :email, :password)
  end

params.require(Model名稱).permit(Model欄位1,Model欄位2, ...)
翻成中文params.需要(:user).予許(:first_name...)
也就是說去資料庫撈user這個table裡面的first_name、last_name、email、password欄位資料

P.S. 
rails寫法經常把參數封裝起來取個名稱(user_params)並且變成私有(private)

延伸閱讀:
綠色這段@user=User.new(user_params) ←新增時呼叫private裡面user_params方法並指向@user這個變數

class UsersController < ApplicationController
  def new
    @user = User.new
  end

 def create 
   @user = User.new(user_params) 
   if @user.save 
     session[:user_id] = @user.id 
     redirect_to '/' 
   else 
     redirect_to '/signup' 
   end 
 end  

 private
   def user_params
     params.require(:user).permit(:first_name, :last_name, :email, :password)
   end  
end

沒有留言:

張貼留言