我需要一些概念上的幫助:
假設您的用戶本質上是一個業務。你有員工,你有員工職位。基本上,一名員工可以持有多個職位,一個職位可以容納多名員工。
我的have_many:through通過聯合表Staffization在員工和職位之間工作。但是,我的員工編輯表單將所有職位作爲整個應用程序的複選框返回,而不僅僅是針對此特定用戶的複選框。而且,當我提交更新時,沒有人正在保存。 我是否需要做一些與我的關聯不同的事情,還是有更好的方式來縮小表單中的數據?
我的模型:Rails 3 has_many:通過概念
class User < ActiveRecord::Base
has_many :employees, :dependent => :destroy
has_many :positions, :dependent => :destroy
class Employee < ActiveRecord::Base
belongs_to :user
has_many :positions, :through => :staffizations
has_many :staffizations, :dependent => :destroy
class Position < ActiveRecord::Base
belongs_to :user
has_many :employees, :through => :staffizations
has_many :staffizations, :dependent => :destroy
class Staffization < ActiveRecord::Base
belongs_to :employee
belongs_to :position
我的員工編輯字段的形式設置,返回複選框可能位置的員工可以持有,但在整個應用程序返回的所有位置,而不是更新數據時,我打提交:
- Position.all.each do |position|
= check_box_tag :position_ids, position.position_name, @employee.positions.include?(position), :name => 'employee[position_ids][]'
= label_tag :position_ids, position.position_name
我的員工控制器更新DEF增加了行了have_many:通過關聯。我是否應該將收益縮小到目前登錄的用戶員工和職位?
@employee.attributes = {'position_ids' => []}.merge(params[:employee] || {})
感謝您的答覆的輔助用這個!......所有該用戶的複選框,將是一件好事。但是,應用程序中每個用戶的所有複選框都很糟糕。我想知道如果我的問題是在僱員控制器中,我在更新def中添加了上面的行。我不確定是否需要在某處傳入當前用戶的ID。 –