新方法中@pin的正确语法是什么?

时间:2016-12-18 04:05:41

标签: ruby-on-rails

我知道@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

3 个答案:

答案 0 :(得分:0)

您是否依赖于表单中的@pin.user变量?

您可以在表单@pin.user.name中使用。 常见的错误模式是为hidden_field列创建user_id,因为它不受保护。

答案 1 :(得分:0)

两者都可以使用。没有最佳实践(至少我不知道)。 这更像是一个偏好问题。我会选择以前的变体,因为它更容易为我读

但请注意,两行的结果不同。 第二行与以下内容相同:

Pin.new(user: current_user)

答案 2 :(得分:0)

使用第二个,因为它会自动设置user_id