我正在以一种不能有标签的形式发布。和has_and_belongs_to_many
之间的关系是经典的。Post
Tag
问题是我无法使用标签 ID 数组初始化帖子,如下所示:
Post.new(tags: [1, 2, 3, 4]) # won't wotk. ActiveRecord expects Tag instances
所以我现在的表格是这样的:
= form_for @post do |f|
= f.text_field :title, placeholder: 'title...'
= f.text_area :body
= fields_for :'post[tags]' do |ft| # hacky. using @post.tags raised 'undefined `model name` for `@post.tags`'
- Post.tags.each do |tag| # I defined Post::tags since I can't Acces Tag class here
= ft.check_box tag.id
= tag.name
= f.submit 'Save'
这种形式迫使我在任一控制器中进行一些修改,但似乎是一种不好的做法。我还认为我可以覆盖 ActiveRecord::Base 初始化器以允许 id,所以我的第一个示例有效,但我肯定在这里遗漏了一些东西。