select 2

1.在view表单中添加下拉单, :multiple => true, 选择一个数组

1
2
3
4
5
6
<div class="control-group">
<%= f.label t('global.user'), :class => 'control' %>
<div class="controls">
<%= select_tag(:user_id, options_from_collection_for_select(User.all, "id", "nickname"), :multiple=>true)%>
</div>
</div>

2.在对应controller 中添加方法: (transaction :Rails 中的事务处理, 事务用来确保多条SQL语句要么全部执行成功、要么不执行。事务可以帮助开发者保证应用中的数据一致性。常见的使用事务的场景是银行转账,钱从一个账户转移到另外一个账户。如果中间的某一步出错,那么整个过程应该重置。)

1
2
3
4
5
6
7
8
9
10
11
12
def create
params[:user_id].each do |id|
Message.transaction do
@message = Message.create(
content: params[:message][:content],
title: params[:message][:title],
user_id: id
)
end
end
redirect_to messages_path
end

3.使用select2
gem “select2-rails”, ‘3.5.2’ #gem中添加
//= require select2 # application.js中添加
*= require select2 # application.css 中添加
4.在view 表中页面中 添加