gpt4 book ai didi

ruby-on-rails-4 - 导轨 : Conditional nested attributes in edit form

转载 作者:行者123 更新时间:2023-12-02 09:30:12 24 4
gpt4 key购买 nike

我有一个名为 Offer 的模型,另一个名为 PurchasinGroup

Offer 有许多 PurchasingGroups

Offer 接受 PurchasingGroups 的嵌套属性

创建报价时,您可以添加任意数量的 PurchasingGroup。

PurchasingGroup 有一个名为 active 的 bool 属性。

编辑报价时,您可以看到所有创建的 PurchasingGroups,但是我想让用户仅编辑事件的 PurchasingGroups,而不显示非事件的购买组。

这是我在 offers_controller.rb 中的edit 操作:

def edit
@offer = Offer.find(params[:id])
end

这是我的表格(仅重要部分):

<fieldset>
<legend>Purchasing groups</legend>
<%= f.fields_for :purchasing_groups do |builder| %>
<%= render partial: 'purchasing_group_fields', locals: { f: builder } %>
<% end %>
</fieldset>

在编辑表单中,所有购买组都会显示以供编辑,我只想显示那些活跃的购买组,我的意思是purchasing_group.active == true

最好的方法是什么?

最佳答案

<%= f.fields_for :purchasing_groups, @offer.purchasing_groups.where(active: true) do |builder| %>
<%= render partial: 'purchasing_group_fields', locals: { f: builder } %>
<% end %>

另一方面,您也可以在模型中添加关联

class Offer
has_many :active_purchasing_groups, class_name: "PurchasinGroup", -> { where(active:true) }
...
end

然后

<%= f.fields_for :active_purchasing_groups do |builder| %>
<%= render partial: 'purchasing_group_fields', locals: { f: builder } %>
<% end %>

关于ruby-on-rails-4 - 导轨 : Conditional nested attributes in edit form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33991295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com