กล่องเลือกหลายรายการ สำหรับการแก้ไข ไม่แสดงสิทธิ์ที่เลือกในปัจจุบันสำหรับบทบาท

ฉันมีกล่องเลือกดังนี้:

  <div class="form-group">
    <label class="col-sm-2 control-label'">Select permissions for this role</label>
    <div class="col-sm-6">
      <%= f.select(:permissions, options_for_select(Xaaron::Permission.pluck(:permission),
        :selected => @role.permissions), {}, class: 'form-control', multiple: true) %>
    </div>
  </div>

กล่องเลือกนี้อนุญาตให้ฉันเลือกหลายสิทธิ์และมอบหมายให้กับบทบาทได้ ซึ่งดีมากและทุกคนยอมรับว่าเมื่อฉันใช้กล่องเลือกเดียวกันในแบบฟอร์มแก้ไข ฟิลด์ทั้งหมดสำหรับบทบาทนั้นจะถูกกรอกแต่กล่องเลือกจะเว้นว่างไว้

ฐานข้อมูลแสดงความสัมพันธ์ระหว่างบทบาทและการอนุญาต แต่จะไม่แสดงการอนุญาตที่เลือก ฉันพลาดอะไรบางอย่างที่นี่หรือเปล่า?


person user3379926    schedule 09.05.2014    source แหล่งที่มา


คำตอบ (1)


ประเภทของแอตทริบิวต์การอนุญาตของคุณของ Xaaron::Permission model คืออะไร? หากเป็นการอ้างอิง (จำนวนเต็ม) คุณสามารถลองทำสิ่งนี้:

<%= f.select(:permissions, options_for_select(Xaaron::Permission.pluck(:name, :id), 
    @role.permissions.pluck( :id ), {}, class: 'form-control', multiple: true) %>
person Anton Grigoryev    schedule 09.05.2014
comment
ฉันต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการจัดเก็บสิทธิ์ใน db - person Anton Grigoryev; 10.05.2014