ruby-on-rails - 关联如何影响我们在控制器中创建对象的方式?
问题描述
我知道关联很重要,因为这为我们提供了一种将两个对象链接在一起的方法,因此它们具有“关系”,我们可以通过它们进行查询。例如,
一个登录页面属于一个博客用户,一个博客用户可以有多个登录页面
我们显然会进入模型并应用正确的方法“has_many”和“belongs_to”。我们还创建了一个迁移并将外键添加到“belongs_to”模型中。这是“登陆页面”。
我的问题:
创建登录页面时,可以选择博客用户。这显然将博客用户 ID 传递到参数中。我想将此 ID 保存到登录页面模型的外键字段中。
这是否可能不做:
def create
@landing_page = @blog_user.landing_pages.build(landing_pages_params)
end
为什么一定要通过博客用户?另一个例子:
def new
@landing_page = @blog_user.landing_pages.new
end
这样做的目的是什么?在不通过 blog_user 的情况下,将 ID 传递到字段中就足够了吗?
解决方案
当然,你可以做类似的事情
@landing_page = LandingPages.new(blog_user_id: X)
显然,您需要知道BlogUser
记录的 ID。然后,您将能够按BlogUser
预期访问新关联的
@landing_page.blog_user #=> BlogUser(id: X)
推荐阅读
- c# - 控制器参数格式
- javascript - 如何在 html 中添加 Onclick
- asynchronous - 输入'未来
' 不是类型 'List 的子类型 ' - electron - 在工作区更改时隐藏电子应用程序窗口(在 macOS 上)
- python - 在 django 中安装 Postgresql 数据库的问题
- javascript - 如何修复 localhost 中的 react cors 错误?
- unity3d - Unity collison 未检测到 2d
- python - 使用 Pythin 脚本从 Outlook 下载附件
- qemu - 在 QEMU 中引导内核 - PFLASH:可能的错误 - 写入块确认
- javascript - 如何将窥视效果从悬停更改为滚动