我知道@pin
方法中create
的正确语法是
@pin = current_user.pins.build(pin_params)
,但我不能100%确定在new
方法中使用哪种语法,因为它仅用于初始化。
def new
@pin = Pin.new
end
或者是吗?
def new
@pin = current_user.pins.build
end
答案 0 :(得分:0)
您是否依赖于表单中的@pin.user
变量?
您可以在表单@pin.user.name
中使用。
常见的错误模式是为hidden_field
列创建user_id
,因为它不受保护。
答案 1 :(得分:0)
两者都可以使用。没有最佳实践(至少我不知道)。 这更像是一个偏好问题。我会选择以前的变体,因为它更容易为我读。
但请注意,两行的结果不同。 第二行与以下内容相同:
Pin.new(user: current_user)
答案 2 :(得分:0)
使用第二个,因为它会自动设置user_id