作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Ruby on Rails 应用程序有一个 DocumentType 模型和一个 PersonType 模型。文档属于文档类型(例如信件、明信片)并列出一个或多个人员。每个 Person 被分配一个 PersonType 来表示他们与文档(发送者、接收者、作者等)的关系。用户只能将 People 分配给与 DocumentType 相关的 PersonType。
表定义:
create_table "document_types", :force => true do |t|
t.string "name"
end
create_table "document_types_person_types", :id => false, :force => true do |t|
t.integer "document_type_id"
t.integer "person_type_id"
end
create_table "person_types", :force => true do |t|
t.string "name"
end
class Document < ActiveRecord::Base
has_many :people, :dependent => :destroy
belongs_to :document_type
end
class DocumentType < ActiveRecord::Base
has_many :documents
has_and_belongs_to_many :person_types
end
class Person < ActiveRecord::Base
belongs_to :document
has_and_belongs_to_many :person_types
end
class PersonType < ActiveRecord::Base
has_and_belongs_to_many :people
has_and_belongs_to_many :document_types
end
documents
id: 1
document_type_id: 1
name: Letter from John Smith to Jane and Joe Smith
document_types
id: 1 | name: letter
document_types_person_types
document_type_id: 1 | person_type_id: 1
document_type_id: 1 | person_type_id: 2
document_type_id: 1 | person_type_id: 4
person_types
id: 1 | name: Sender
id: 2 | name: Recipient
id: 3 | name: Photographer
id: 4 | name: Author
people
id: 1 | document_id: 1 | name: John Smith | person_type_id: 1
id: 2 | document_id: 1 | name: Jane Smith | person_type_id: 2
id: 3 | document_id: 1 | name: Joe Smith | person_type_id: 2
EDIT DocumentType Letter
Sender [x]
Recipient [x]
Photographer [ ]
Author [x]
<% for pt in PersonType.find(:all) %>
<%= check_box_tag "document_type[person_type_ids][]", pt.id, @document_type.person_types.include?(pt) %>
<%= pt.name %>
<% end %>
最佳答案
有了这样的关联,DocumentType 将有一个 person_type_ids
方法返回关联人员类型的 id 数组。
因此,如果您创建一组名称为 document_type[person_type_ids][]
的复选框。并且其值是每个人类型的 id 那么将提交的是一个包含检查的人类型的 id 的数组,所以
document_type.update_attributes params[:document_type]
关于ruby-on-rails - 基于多对多关系的 Ruby on Rails 中的复选框形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452488/
我是一名优秀的程序员,十分优秀!