以下是我的代码: view:
<%= f.collection_select :user_ids,User.all,:id,:cname,{},{multiple: true} %>
model1:
class IncidentRecord < ActiveRecord::Base
has_many :incident_record_userships
has_many :users, through: :incident_record_userships
end
model2
class IncidentRecordUsership < ActiveRecord::Base
belongs_to :incident_record
belongs_to :user
end
model3
class User < ActiveRecord::Base
before_save { self.email = email.downcase }
before_create :create_remember_token
validates :name, presence: true, length: { maximum: 50 }
validates :cname, presence: true, length: { maximum: 50 }
validates :tel,presence: true, length: { maximum: 11 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_senstive: false}
has_secure_password
validates:password,length: { minimum: 6}
has_many :incident_record_userships
has_many :incident_records, through: :incident_record_userships
def User.new_remember_token
SecureRandom.urlsafe_base64
end
def User.encrypt(token)
Digest::SHA1.hexdigest(token.to_s)
end
private
def create_remember_token
self.remember_token = User.encrypt(User.new_remember_token)
# Create the token.
end
end
controller
class IncidentRecordsController < ApplicationController
before_action :set_incident_record, only: [:show, :edit, :update, :destroy,:fix_edit]
# GET /incident_records
# GET /incident_records.json
def index
@incident_records = IncidentRecord.all
end
# GET /incident_records/1
# GET /incident_records/1.json
def show
end
# GET /incident_records/new
def new
@incident_record = IncidentRecord.new
end
# GET /incident_records/1/edit
def edit
end
def fix_edit
end
# POST /incident_records
# POST /incident_records.json
def create
@incident_record = IncidentRecord.new(incident_record_params_new)
respond_to do |format|
if @incident_record.save
format.js { redirect_to @incident_record, notice: 'Incident record was successfully created.' }
else
format.js { render action: 'new' }
end
end
end
# PATCH/PUT /incident_records/1
# PATCH/PUT /incident_records/1.json
def update
respond_to do |format|
if @incident_record.update(incident_record_params_new)
format.html { redirect_to @incident_record, notice: 'Incident record was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @incident_record.errors, status: :unprocessable_entity }
end
end
end
# DELETE /incident_records/1
# DELETE /incident_records/1.json
def destroy
@incident_record.destroy
@incident_records = IncidentRecord.all
end
private
# Use callbacks to share common setup or constraints between actions.
def set_incident_record
@incident_record = IncidentRecord.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def incident_record_params_new
puts params[:incident_record][:user_ids]
params.require(:incident_record).permit(:sms_title,:no, :host_id, :sys_id, :incident_type, :effect_degree, :priority, :incident_time, :record_user, :come_from, :customer_type, :customer, :title, :key_word, :description, :status, :belong_team, :belong_user,{:user_ids =>[]},:time_out)
end
def incident_record_params_fix
params.require(:incident_record).permit(:incident_wiki_id, :modify, :solution, :fixed_time, :close_code)
end
end
表单提交提示:
我这个是参考 rails casts 258-token-fields-revised 写的。请大家指教啊!