1
我试图实现多选择下拉菜单,但我面临一些问题。实现具有嵌套属性的多选下拉菜单
1)在我的情况下多次下拉来了,我无法弄清楚
2)如果我修改任何用户所有这一切,他应该来多选择降选择默认标签down.Also所有的标签都应该出现,以便如果他想更新他的标签或更改他的标签,他可以做到。
User.rb
class User
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
include Mongoid::Document
include Mongoid::Timestamps
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable#, :omniauthable, :omniauth_providers => [:facebook]
has_many :tags,dependent: :destroy
accepts_nested_attributes_for :tags,allow_destroy: true
end
Tag.rb
class Tag
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
field :name, :type => String
field :created_at, :type => DateTime
field :updated_at, :type => DateTime
end
users_controller.rb
class UsersController < ApplicationController
before_action :authenticate_user!
def index
@users = User.all - [User.find_by(status: true)]
end
def show
@user = User.find(params[:id])
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
redirect_to users_path
else
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:first_name, tags_attributes: [:id, :name, :_destroy])
end
end
个用户/ edit.html.erb
<section class="content">
<div class="row">
<div class="col-md-3">
</div>
<div class="col-md-6">
<div class="box box-warning">
<div class="box-header with-border">
<h3 class="box-title">Update User</h3>
</div>
<div class="box-body">
<%= form_for @user do |f| %>
<div class="form-group">
<label>First Name</label>
<%= f.text_field :first_name, :required => 'required',:class => 'form-control' %>
</div>
<div class="form-group">
<label>Tags</label>
<%= f.fields_for :tags do |user_tag| %>
<%= user_tag.select :name, User.find_by(id: params[:id]).tags.collect{|tag| [tag.name,tag.id]} ,{:prompt => "--select state--"},:class => 'form-control',multiple: true %>
<% end %>
</div>
<div class="box-footer">
<%= f.submit 'Submit',class: 'btn btn-primary' %>
</div>
<%end %>
</div>
</div>
</div>
</div>
</section>
我已经阅读过API,但这没有帮助 – user6551529