gpt4 book ai didi

mysql - 是否可以使用 Collection_Select 从引用模型为同一表单中的多个变量生成相同的下拉列表?

转载 作者:行者123 更新时间:2023-11-29 07:06:18 26 4
gpt4 key购买 nike

我认为这个问题的第一个版本太复杂了,并且证明了解决问题的错误尝试。考虑这个假设的迁移文件中的模型:

class CreateProjects < ActiveRecord::Migration
def self.up
create_table :projects do |t|
t.references :oem1
t.references :oem2
t.references :oem3

t.timestamps
end
end

def self.down
drop_table :projects
end
end

这个程序有必要:

  1. 允许用户从制造商下拉列表中为 oem1、oem2 和 oem3 赋值。
  2. 允许管理员或 super 用户向列表中添加或删除值,用户将从中选择。

第二个目标很容易通过创建一个像这个迁移文件中所示的模型来实现:

class CreateOems < ActiveRecord::Migration
def self.up
create_table :oems do |t|
t.string :name

t.timestamps
end
end

def self.down
drop_table :projects
end
end

如果我在 PROJECTs 模型中没有三个独特的 OEM 变量,我将只制作 PROJECT :belongs_to oemsOEM :has_many projects 并只使用 collection_select 从 OEM 模型中选择一个 OEM 名称并将其分配给 PROJECT 模型中的 OEM 引用变量。但是,我有三个 OEM 变量,它们不能都命名为 OEM。因此,据我所知,我无法将所有这三个变量都链接到 collection_select 下拉列表中的 OEM.name 变量。

那么,我该怎么办?还有其他方法可以实现这两个目标吗?

最佳答案

在您的表单中,您可以执行以下操作:

<%= form_for @project do |f| %>
<p>
<%= f.label :oem1 %>
<%= f.collection_select :oem1, Oem.all, :name, :name %>
</p>
<p>
<%= f.label :oem2 %>
<%= f.collection_select :oem2, Oem.all, :name, :name %>
</p>
<p>
<%= f.label :oem3 %>
<%= f.collection_select :oem3, Oem.all, :name, :name %>
</p>

<!-- The rest of your form... -->
<% end -%>

不确定您的要求,但听起来项目和 oem 之间的关系是多对多的。那么,使用 has_and_belongs_to_many 怎么样? ?

关于mysql - 是否可以使用 Collection_Select 从引用模型为同一表单中的多个变量生成相同的下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128051/

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