users
, venues
및 을 가진 앱을 개발 중 groups
입니다. 나는 내 모델을 만들었고 그것들에 꽤 만족하지만 컨트롤러와 약간 혼란스러워하고 있습니다. 나는 대부분 has_many :through
관계가 있습니다. 예를 들어 나는이 user
모델하는 venue
모델과 user_venue
기능 모델을 user_id
, venue_id
그리고 admin column
. 인스턴스를 구축하는 동시에 장소를 만들 때 사용자를 자동으로 관리자로 만들고 (관리자 열을 1 씩 증가) 원합니다. 다른 사용자도 관리자가되지 않고도 자신을 장소와 연결할 수 있습니다.
내 모델은 다음과 같습니다.
class User < ActiveRecord::Base
has_many :venues, through: :user_venues
has_many :user_venues
end
class Venue < ActiveRecord::Base
has_many :users, through: :user_venues
has_many :user_venues
end
class UserVenue < ActiveRecord::Base
belongs_to :users
belongs_to :venues
validates :user_id, presence: true
validates :venue_id, presence: true
end
사용자가 장소를 만들고 관리자가되어 다른 사용자가 연결을 만들 수 있도록하는 가장 좋은 방법은 무엇일까요? 초기 장소가 생성되면 user_venue
컨트롤러 를 사용하는 문제 일 뿐이며 추상화 된 모델을 다루기 위해 고군분투하고 있습니다. 나는 또한 조언을 구하는 것이 그것을 비난함으로써 보안 악몽이 아닌지 확신 할 수 있다고 생각했습니다! group
모델은 같은 방식으로 작동합니다.
나는 이것이 누군가에게 쉬운 대답이 될 것이라고 확신합니다!
편집하다
지금까지 4 시간 더 작업을 해왔지만 여전히 해결책을 찾을 수없는 것 같고 온라인에서도 찾을 수 없습니다. 지금까지 Venue Controller
다음과 같은 모양의 정의를 만듭니다 .
def create
admin = 1
@user = current_user
@venue = Venue.create(venue_params)
@user_venue = UserVenue.new user_id: @user.id, venue_id: @venue.id, admin: admin
@user_venue.save
end
이것은 불행히도 여전히 venues
테이블이 아닌 테이블을 완성 user_venues
합니다.
나는 그것을 해결했다 ... 나는 단지 belongs_to
관계를 복수 적이 지 않게 만들고 다음 생성 방법을 사용하는 것이 필요하다는 것을 알게되었습니다 .
@venue = Venue.create(venue_params)
@venue.users << current_user
그리고 그것은 관계를 만들었습니다. 이제 user_groups
생성시 테이블에 속성을 추가하는 코드를 작성하면됩니다! ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다