我知道,@pin
在create
方法正確的語法是新方法中@pin的正確語法是什麼?
@pin = current_user.pins.build(pin_params)
,但我只是不能100%確定在new
方法要使用的語法,因爲它只是初始化。
是嗎?
def new
@pin = Pin.new
end
還是它?
def new
@pin = current_user.pins.build
end
我知道,@pin
在create
方法正確的語法是新方法中@pin的正確語法是什麼?
@pin = current_user.pins.build(pin_params)
,但我只是不能100%確定在new
方法要使用的語法,因爲它只是初始化。
是嗎?
def new
@pin = Pin.new
end
還是它?
def new
@pin = current_user.pins.build
end
使用第二個,因爲它會設置USER_ID自動
這取決於您是否會在表單中使用@pin.user
變量?
也許你可以使用你的表格@pin.user.name
。 常見的錯誤模式是爲user_id
列創建hidden_field
列,因爲它不安全。
兩者都可以使用。沒有最佳做法(至少我不知道)爲此。 這更多的是一個偏好問題。我會選擇以前的變體,因爲它對我來說更容易閱讀。
但是請注意,兩行的結果是不同的。 第二行equvalient到:
Pin.new(user: current_user)
我相信,在你的代碼中的錯誤。它應該是'@pin = current_user.pins.create(pin_params)' –
不是。它應該是'.build' – boholdyjeramae
構建不會在數據庫中創建記錄 –