2013-04-18 3 views
0

내 질문은 일반적인 성격을 띤다.레일에 가상 개념 구현

나는 레일의 범위에 대해 알고하지만 난 내가 DB에 몇 테이블이

주위에 내 머리를 포장 할 수없는 나는 그 개념에 실행하고 - 고객, 제품 등의 판매와 같은을 나는 자신의 판매 등을보기 위해 로그인하는 다양한 영업 사원을두고있다. 나는 "My"개념을 구현하기를 원한다. 그래서 판매원이 들어 오면 판매, 고객, 판매 된 제품 만 볼 수있다. . my.customers, my.sales 또는 my.territories 등과 같은 것입니다.

어떻게 구현할 수 있습니까? 고객에게 "내"를 접두사로 붙일 수있는 방법, 우아하게 이것을 달성하기위한 판매 등?

안내 감사합니다.

http://guides.rubyonrails.org/active_record_querying.html

이것은 당신이 당신의 컨트롤러/뷰에 액세스하는 방법을 연결하고 사용자가 보는 것을 관리하는 데 사용하고, 무엇을 : 당신은 살펴 보셔야합니다

+0

당신이 액티브 모델을 살펴해야한다. 기본 테이블 연결은이를 쉽게 수행 할 수 있어야합니다. –

답변

1

감사합니다, . 예를 들어 :

class Client < ActiveRecord::Base 
    has_many :sales 
end 

class Sale < ActiveRecord::Base 
    belongs_to :client 
end 

클라이언트가 많은 판매를 가지도록이 그것을 만들 것이고, 당신은 예를 들어 Client.first.sales...를 사용하여 액세스 할 수 있습니다.

my 대신 User.first, 당신이 사용할 수 있도록하려면

private 

def my 
    User.first 
end 
+0

안녕 IT 닌자 - 감사합니다. 로그인 할 때 세션에 내 사용자 ID가 있고 User.first.sales가이 사용자가 모든 판매를 가져올 수 있음을 알았지 만 문제는 user.first 대신 "my"를 사용하는 방법이었습니다. 그것은 훨씬 더 우아하고 간결합니다. 나는 대답을 알아 냈다. - 나는 "My"라는 클래스를 만들었고, my_id_is attr_accessor를 가지고있다. -이 방법으로 내 사용자 ID를 설정할 수있다. - 그 다음에 나는 customer라는 메소드를 작성했다. my_id_is를 기반으로 고객을 가져온다. . 그래서 지금 my.customers를 호출 할 때 - 마술이 작동합니다. 그래도 관심을 가져 주셔서 감사합니다. – deepinder

+1

연결을 사용하지 않는다면, 매번 휠을 재발 명할 필요없이 트랙 아래로 더 많은 유연성을 추가로 제공 할 수 있으므로 확실히 봐야 할 사항입니다. 또한, 현재 사용자를 반환하는'current_user' 메쏘드를 구현하는 것은 매우 일반적입니다 ('User.find (session [: user_id]')를 반환하는 것처럼 간단하더라도), 그 메쏘드는 일반적으로 여러분이 사용하는 곳에서 사용됩니다 'My' 모델 (이것은'User'의 동작의 부분 집합을 복제하는 꽤 중복 된 모델처럼 보입니다). –