model
class Paper
has_many :authors, through: :paper_authors
has_many :paper_authors
accepts_nested_attributes_for :authors
end
class author
has_many :papers, through: :paper_authors
has_many :paper_authors
end
class PaperAuthor
# paper_id
# author_id
# role
# priority
end
建议关系表中增加 priority 和 role 两个属性
priority:第一作者、第二作者、第三作者
role:通讯作者,普通作者
表单
用 accepts nested attributes
<%= simple_form_for @papers do |f| %>
<%= f.input :title, label: "标题" %>
<%= f.simple_fields_for :articles do |builder|%>
<fieldset>
<%= builder.input :author_id, as: :select, label: "作者" %><br/>
....
</fieldset>
<% end -%>
<% end -%>