首页 > 解决方案 > 关联如何影响我们在控制器中创建对象的方式?

问题描述

我知道关联很重要,因为这为我们提供了一种将两个对象链接在一起的方法,因此它们具有“关系”,我们可以通过它们进行查询。例如,

一个登录页面属于一个博客用户一个博客用户可以有多个登录页面

我们显然会进入模型并应用正确的方法“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 传递到字段中就足够了吗?

标签: ruby-on-rails

解决方案


当然,你可以做类似的事情

@landing_page = LandingPages.new(blog_user_id: X)

显然,您需要知道BlogUser记录的 ID。然后,您将能够按BlogUser预期访问新关联的

@landing_page.blog_user #=> BlogUser(id: X)

推荐阅读