首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在嵌套模型rails 6中从子模型中获取父对象

在嵌套模型的Rails 6中,可以通过以下方式从子模型中获取父对象:

  1. 首先,确保你的模型之间已经建立了正确的关联关系。例如,如果你有一个父模型叫做Parent,一个子模型叫做Child,你需要在Child模型中定义一个belongs_to关联到Parent模型。
代码语言:txt
复制
class Child < ApplicationRecord
  belongs_to :parent
end
  1. 在控制器中,你可以通过params[:parent_id]获取父对象的ID。假设你的路由已经正确设置,你可以在子模型的控制器中的create或update等动作中获取父对象。
代码语言:txt
复制
class ChildrenController < ApplicationController
  def create
    @parent = Parent.find(params[:parent_id])
    @child = @parent.children.build(child_params)

    if @child.save
      # 保存成功的逻辑
    else
      # 保存失败的逻辑
    end
  end

  private

  def child_params
    params.require(:child).permit(:name)
  end
end
  1. 在视图中,你可以使用hidden_field方法将父对象的ID传递给子模型的表单。
代码语言:txt
复制
<%= form_with(model: [@parent, @child]) do |form| %>
  <%= form.hidden_field :parent_id %>

  <!-- 其他表单字段 -->

  <%= form.submit %>
<% end %>

这样,当你提交表单时,子模型的控制器就能够通过params[:parent_id]获取到父对象的ID,并进行相应的操作。

这是在嵌套模型中从子模型中获取父对象的基本步骤。根据具体的业务需求,你可能需要进一步处理和验证数据。关于Rails 6的嵌套模型和关联关系的更多信息,你可以参考Rails官方文档:Active Record Associations

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • DOM盒子模型常用属性client,offset和scroll

    [获取元素具体的某个样式值] 1.[元素].style.xxx 操作获取 只能获取所有写在元素行内上的样式(不写在行内上,不管你写没写都获取不到,真实项目中我们很少会把样式写在行内上),outer.style.width =>'' (width是写在样式表中的) 2.获取当前元素所有经过浏览器计算的样式 经过计算的样式:只要当前元素可以在页面中呈现(或者浏览器渲染它了),那么它的样式都是被计算过的 不管当前样式写在哪,不管你是否写了(浏览器会给元素设置一些默认样式) 标准浏览器(IE9+) window.getComputedStyle([元素],[伪类,一般都写null]) 获取到当前元素所有被浏览器计算过的样式(对象) IE6~8 [元素].currentStyle 获取经过计算的样式

    01
    领券