1
this 질문의 도움 외에도 마침내 내 관계를 통해 많은 관계를 맺고 있습니다.다른 기본 및 외래 키를 통해 다수 있음
불행하게도 기존 DB로 작업 중이므로 기본 레일 조인 방법을 사용할 수 없으므로 열 이름과 필드 값을 모두 변경해야합니다.
두 개의 모델이 있습니다 : raduser와 radgroup이 둘은 radusergroup을 통해 결합되었습니다. 아래의 모델.
raduser_id 및 radgroup_id 키를 사용하여 조인을 사용할 수 있습니다. 내가해야 할 일은 각각 사용자 이름과 그룹 이름으로 변경하는 것입니다. 대신에이처럼 보이는 테이블의
:
+---------------------------+---------------------------+----------+----+
| raduser_id | radgroup_id | priority | id |
+---------------------------+---------------------------+----------+----+
| 33 | 2 | 1 | 21 |
| 33 | 1 | 1 | 20 |
| 32 | 3 | 1 | 25 |
+---------------------------+---------------------------+----------+----+
나는 그것을 다음과 같이해야합니다
+---------------------------+---------------------------+----------+----+
| username | groupname | priority | id |
+---------------------------+---------------------------+----------+----+
| jenny | staff | 1 | 21 |
| steve | sports | 1 | 20 |
| ianw | travel | 1 | 25 |
+---------------------------+---------------------------+----------+----+
나는 내 모델에서 다음을 시도했지만 지금까지, 그것은 실패입니다.
class Raduser < ActiveRecord::Base
has_many :radusergroup, :dependent => :destroy, :primary_key => :groupname, :foreign_key => :username
has_many :radgroup, :through => :radusergroup
end
class Radusergroup < ActiveRecord::Base
belongs_to :raduser, :foreign_key => 'groupname', :primary_key => 'username'
belongs_to :radgroup, :foreign_key => 'username', :primary_key => 'groupname'
end
class Radgroup < ActiveRecord::Base
set_table_name 'radgroup'
has_many :radusergroup, :dependent => :destroy, :primary_key => :groupname, :foreign_key => :username
has_many :raduser, :through => :radusergroup
end
올바른 방법은 무엇입니까?
- UPDATE -
양식 코드 :
- Radgroup.all.each do |radgroup|
= check_box_tag "raduser[radgroup_ids][]", radgroup.id, @raduser.radgroup.include?(radgroup), :id => "raduser_radgroup_id_#{radgroup.id}"
= radgroup.groupname
생각해보십시오. 양식을 제출할 때 여전히 ID를 입력합니다. 양식 코드로 내 질문을 업데이트했습니다. 이것에서 무엇을 바꾸어야합니까? 일본 –