2011-11-13 1 views
1

를 저장하지, 내 쿼리는 잘 작동합니다.RoR3 HABTM 체크 박스는 콘솔에서

내 레일보기에서 그렇게하려고하면 저장되지 않습니다.

<%= check_box_tag "radcheck[groupnames][]", group.id, @radcheck.radgroups.include?(group) %> 

datamapper를 사용하여 임, 그리고이이 같은 radcheck 모델 설정 :

has n, :radusergroup, :child_key => [:username], :parent_key => [:username] 
has n, :radgroups, :through => :radusergroup, :model => 'Group' 

내 radcheck 테이블이 컬럼은 사용자 이름과

어떤 제안을 그룹 이름을 포함?

- 업데이트 -

아래에 답변을 또한, 나는 (내 테이블을 조인)에 radusergroup 테이블에 ID를 추가했습니다. 이 기능은 현재 다음과 같습니다

+-------------+---------------------------+----------+----+ 
| username | groupname     | priority | id | 
+-------------+---------------------------+----------+----+ 
| hcTTm  | 3600      |  1 | 1 | 
| FpKS4  | 3600      |  1 | 2 | 
| jenny  | Disabled-Users   |  1 | 3 | 
| silver  | silver     |  1 | 4 | 
| shushQb  | 30-minutes    |  0 | 5 | 
| jenny  | silver     |  1 | 6 | 
+-------------+---------------------------+----------+----+ 

이 지금 혼란에 저를 운전 내 모델에 정확히 올바른 정보를 가지고 만이이 그 문제의 저장있어 가정 할 수

?

+0

답변을 얻지 못한 이전 질문 중 일부 (질문 중 2 페이지)를 삭제하여 동의 함을 제안하십시오. –

+0

감사합니다. 왜 이것이이 질문에 영향을 미치는지 확실하지 않습니다. –

답변

2

변화는 그것은 HABTM 사용을 중지하는 것이 가장 좋습니다 groupname_ids

<%= check_box_tag "radcheck[groupname_ids][]", group.id, @radcheck.radgroups.include?(group) %> 

또한 사용할 수 있습니다. has_many 사용

예를 들어 사용자를하는 것은 user_roles

class User 
    has_many :user_roles 
    has_many :roles, :through => :user_roles 
end 
class UserRole 
    belongs_to :role 
    belongs_to :user 
end 
class Role 
    has_many :user_roles 
    has_many :users, :through => :user_roles 
end 

과 조인 테이블에 ID를 추가를 통해 많은 역할이있다.

+0

답장을 보내 주셔서 감사합니다. 슬프게도 작동하지 않습니다. 제 모델에는 많은 것을 통해 사용하고 있습니다 - 어쩌면 그것이 문제입니다. a의 구문은 무엇입니까? –

+0

예를 들어 ... 사용자 클래스의 경우 ... has_many : user_roles 그 다음 has_many : roles, : through => : user_roles || 하지만 조인 테이블에 id 필드가 필요합니다. 당신은 또한 belongs_to와 함께 UserRole 클래스가 필요합니다 : role AND belongs_to : user – drhenner

+0

최선의 노력에도 불구하고, 여전히 작동하지 않습니다. 지금은 이것이 datama 문제라고 가정하고 있지만 코드 문제는 아닙니다. 로그에서 삽입이 발생하는 것을 볼 수 없습니다. 업데이트 된 질문이 있습니다. –