rails 5 collection select
rails 5 collection select
我正在尝试创建一个 collection_select
下拉列表,其中包含另一个模型的字段值。我得到了以下 2 个型号:
Documents
:
class CreateDocuments < ActiveRecord::Migration[5.0]
def change
create_table :documents do |t|
t.string :etiquette_number
t.string :etiquette_type
t.boolean :important
t.string :work_text
t.integer :user_id
t.timestamps
end
end
end
Entries
:
class CreateEntries < ActiveRecord::Migration[5.0]
def change
create_table :entries do |t|
t.integer :document_id
t.integer :user_id
t.string :work
t.date :date
t.integer :time
t.timestamps
end
end
end
我想在 document_id
(在 Entries
模型中)上获得下拉菜单 select,我可以在其中 select 文档 ID 的值。
到目前为止我已经明白了,但我不确定这是否是正确的方法
models/document.rb
class Document < ApplicationRecord
has_many :Entries
end
models/entry.rb
class Entry < ApplicationRecord
belongs_to :Documents
end
我真的希望有人能帮助我,正如你在标题中看到的那样,我正在使用 Rails 5.
您应该使用如下代码的关联
当您使用 has_many
时,型号名称应为 plural
class Document < ApplicationRecord
has_many :entries
end
当您使用 belongs_to
时,型号名称应为 singular
class Entry < ApplicationRecord
belongs_to :document
end
您可以像下面那样在 entry
中写入 select 标签
@documents = Document.all
<%= f.select :document_id, @documents.collect { |d| [ d.name, d.id ] }, include_blank: true %>
@documents 是包含所有文档的保险变量。
谢谢
class Document < ApplicationRecord
has_many :entries
end
class Entry < ApplicationRecord
belongs_to :document
end
在您的视图文件中:new.html.erb
<%= f.select :document_id, Document.all.collect { |p| p.id }, include_blank: true %>
您需要将文档的范围限定为属于该条目的文档
<%= f.select :document_id, entry.documents, include_blank: true %>
我正在尝试创建一个 collection_select
下拉列表,其中包含另一个模型的字段值。我得到了以下 2 个型号:
Documents
:
class CreateDocuments < ActiveRecord::Migration[5.0]
def change
create_table :documents do |t|
t.string :etiquette_number
t.string :etiquette_type
t.boolean :important
t.string :work_text
t.integer :user_id
t.timestamps
end
end
end
Entries
:
class CreateEntries < ActiveRecord::Migration[5.0]
def change
create_table :entries do |t|
t.integer :document_id
t.integer :user_id
t.string :work
t.date :date
t.integer :time
t.timestamps
end
end
end
我想在 document_id
(在 Entries
模型中)上获得下拉菜单 select,我可以在其中 select 文档 ID 的值。
到目前为止我已经明白了,但我不确定这是否是正确的方法
models/document.rb
class Document < ApplicationRecord
has_many :Entries
end
models/entry.rb
class Entry < ApplicationRecord
belongs_to :Documents
end
我真的希望有人能帮助我,正如你在标题中看到的那样,我正在使用 Rails 5.
您应该使用如下代码的关联
当您使用 has_many
时,型号名称应为 plural
class Document < ApplicationRecord
has_many :entries
end
当您使用 belongs_to
时,型号名称应为 singular
class Entry < ApplicationRecord
belongs_to :document
end
您可以像下面那样在 entry
中写入 select 标签
@documents = Document.all
<%= f.select :document_id, @documents.collect { |d| [ d.name, d.id ] }, include_blank: true %>
@documents 是包含所有文档的保险变量。
谢谢
class Document < ApplicationRecord
has_many :entries
end
class Entry < ApplicationRecord
belongs_to :document
end
在您的视图文件中:new.html.erb
<%= f.select :document_id, Document.all.collect { |p| p.id }, include_blank: true %>
您需要将文档的范围限定为属于该条目的文档
<%= f.select :document_id, entry.documents, include_blank: true %>