2009-11-03 4 views
0

내 실험용 목적으로 레일에 내 블로그 관리 앱을 만드는 중 ....이 일을 처리하는 가장 좋은 방법은 무엇입니까? 게시물과 카테고리가 있습니다. 사용자가 새 게시물을 만들 때 카테고리를 선택하도록 카테고리 드롭 다운을 원합니다. 이제 각 사용자마다 다른 권한이 생겨 모든 사용자가 모든 범주를 표시하지는 않습니다 .... 지금 당장 게시물을 만들고 원하는 범주를 선택할 수있는 지점에 있습니다 ... 사용자 당 필터를 추가하지 않았습니다. 지원 .... 지금 어디로 가야 하나 도와주세요. ??레일 컨텐츠 필터링 도움말

답변

0

시작하려면 사용자에게 has_many 카테고리 관계 (이 아이디어가 더 복잡해지면 어느 시점에서 자체 모델 객체로 바뀔 수 있습니다. 지금은 이미 이해할 수있는 경우)를 사용하고 이미 가정한다고 가정합니다. 로그인 기능을 사용하면 로그인 한 사용자에게 카테고리를 요청하고 드롭 다운을 적절하게 채울 수 있습니다.

단지 편의성이 아니라 보안상의 문제인 경우 양식을 서버로 다시 제출할 때 선택한 범주가 사용자 범주에 있는지 확인해야합니다.

아직 로그인하지 않았다면이 기능을 빠르게 사용할 수 있도록 여러 레일즈 플러그인이 있다고 생각합니다.

1

먼저 인증 및 승인을 구현해야합니다. 이 주제에 대한 많은 훌륭한 Rails 튜토리얼이 있으므로 여기서 자세히 다루지 않을 것입니다.

이 시점에서 사용자, 게시 및 카테고리에 대한 모델을 갖게됩니다. 권한이 부여 된 범주의 사용자 별 목록이 필요합니다. 순진한 모델 :

class User < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 

사용자가 실제로 어떤 범주에도 속해 있지 않기 때문에 오해의 소지가 있습니다. 다음과 같은 조인 모델과 같은 것을 원할 것입니다 :

class UserCategoryAuthorization < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :category 
    // More fields here; possibly: 
    // belongs_to :authorized_by, :class_name => 'User' 
end 

class User < ActiveRecord::Base 
    has_many :user_category_authorizations 
    has_many :authorized_categories, 
      :through => :user_category_authorizations, 
      :source => :category 
end