在创作时保存协会I.D?

时间:2015-04-26 13:18:29

标签: ruby-on-rails ruby

如果我有user has_many user_loginsuser_logins属于user - 创建user_login时我使用UserLogin.create( userlogin_params)然后我的强参数允许user_id列 - 但仅此一项不会将当前用户ID保存到列中,因为它将以nil格式显示。

如何保存I.D?

2 个答案:

答案 0 :(得分:0)

用户模型:

has_many :user_logins

UserLogin模型

belongs_to :user

accepts_nested_attributes_for :user

UserLoginController:

...
def create
  @user_login = UserLogin.new(user_login_params)
  ...
end
...
def user_login_params
  param.require(:user_login).permit(
    :user_login_attribute1,
    :user_login_attribute2,
    user_attributes: [
      :id,
      :user_attribute1,
      :user_attribute2
    ]
  )
end

告诉我它是否有帮助。

答案 1 :(得分:0)

现在有两个问题。

首先:如何在那里自动创建与父记录的关联?

第二:你是如何做到这一点所以你的控制器动作并不是一个巨大的洞,等待黑客盯着他们。

您需要从父级开始,然后构建子级,而不是从子级开始并构建父级。

请考虑以下事项:

brew uninstall opencv
brew install opencv --with-ffmpeg -v

除非用户可以选择ID,否则不要将ID传递给任何安全参数哈希。如果您允许ID进入安全参数,黑客可以开始将记录移动到其他对象并破坏您的数据库完整性。

如果您希望现场和亲自就此问题配对帮助,可以在https://codementor.io/rubycasts/#reviews

查看我的代码或个人资料。