欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

对前端用户群发站内信的功能-使用select2(transaction)

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

<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, :style

    </div>

  </div>

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

  def create
    # 要给出提示
   Rails.logger.info "=================="
   Rails.logger.info params[:user_id].inspect
   Rails.logger.info "=================="
    params[:user_id].each do |id|
      Message.transaction do
        @message = Message.create(
          content: params[:message][:content],
          title: params[:message][:title],
          user_id: id.to_i
        )
      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 表中页面中 添加 <script>代码:

  $( "#user_id" ).select2({
     theme: "bootstrap"
  });

返回列表