달력

09

« 2010/09 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
제목을 뭐로 해야할지 참 애매하네요.
지금 만들려고 하는 Join Table은, 같은 Model을 향하는 Join Table입니다.(말이 어렵네요. ㅎㅎ)


Subscription 이라는 Join Table은 user_id, writer_id를 가지고 있습니다.
user_id, writer_id 모두 User Model을 가르키는 ID를 가지고 있죠.

제가 하고 싶은것은
User.subscriptions # User 구독하고 있는 모든 Users
User.subscribers # User 구독하고 있는 모든 Users
입니다.


Join Table명을 (딱히 좋은 이름이 생각안나서) Subscript로 변경하겠습니다.
class Subscript < ActiveRecord::Base
    belongs_to :user
    belongs_to :writer, :foreign_key => "writer_id", :class_name => "User"
end

class User < ActiveRecord::Base
    has_many :subscripts #내(Logged User)가 구독하고 있는 User ids
    has_many :subscriptions, :through => :subscripts, :source => :writer #내가 구독하는 Users

    has_many :subscribes, :foreign_key => "writer_id", :class_name => "Subscript" #날 구독하는 User ids
    has_many :subscribers, :through => :subscribes, :source => :user #날 구독하는 Users
end

코드 설명을 세세하게 하면 싫어하실것 같아 간략하게 코드 설명을 하겠습니다.
Subscript의 writer_id를 이용하는 새로운 관계(belongs_to)를 만듭니다.
그리고 그 만든 관계명을 User에서 writer_id로 User를 불러와야 하는 곳(:subscriptions)의 :source로 써준 것이죠.

좀 찜찜하지만 이런식으로도 구현할 수 있습니다.
class User < ActiveRecord::Base
    has_many :subscripts, :dependent => :destroy
    def subscriptions
        ids = self.subscripts.collect { |s| s.writer_id }
        User.find(ids)
    end
end
확장성의 제약이 있겠지만, 사용하는것에는 큰 문제점이 없을듯 하네요
하지만.. 그래도 역시 찜찜하죠? ㅎㅎ


여담>
지금 딱 새벽 6시 20분이네요. 오랜만에 와이프 아침밥이나 해주고 자야겠네요 ㅎㅎ (라고 말하고 기절하기)
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Johan Kim 기다림
test/test_helper.rb 에서
class Test::Unit::TestCase
class ActiveSupport::TestCase
요렇게 바꿔주면 됩니다.

참고링크
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Johan Kim 기다림
environment.rb 에서 RAILS_GEM_VERSION 을 '2.2.2'로 개발중이던것을
'2.3.2'로 수정하면..
uninitialized constant ApplicationController
라는 Error Message가 뜹니다.

Rails가 2.3 으로 Update 하면서 application.rb 가 application_controller.rb 로 변경이 되어서 생기는 문제점입니다.

직접 application.rb 파일을 rename 해주거나.
rake rails:update:application_controller 
이런식으로 rake를 해주셔도 됩니다.

저는 rake를 사용해서 작업했습니다.
이제 잘 되네요 :)

관련링크

덧.
위에 적은 rake는 rake rails:update에 포함되어 있다고 하네요.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Johan Kim 기다림
간만에 gem update 했는데.. mime-types에서 Error가 난다.
아쉽게도 Error문구를 기록을 못했는데..
libxslt가 없다면서 나는 에러였다.

libxslt가 뭔지 궁금해서 찾아봤는데 XSLT 란다.
XSLT는 Extensible Stylesheet Language Transformations 의 약자로, 쉽게 말해 XML을 다른형태로 바꿔주는 XML변신기 라고 보면 된다.

mime-types에서 쓸일이 없을것 같기도 하면서도, 왠지 쓸거 같기도 한 애매모호한 놈이다.
뭐 update를 안시켜주는데 별 수 있나.. 설치해줘야지

방법은 간단한다
emerge -av libxslt
dependent  묻는거 나오면 그냥 Enter 한번 눌러주면 된다. (물런 필요나 의도에 의해 No를 할 수 도 있음.)

간만에 emerge sync랑 world complie 하니.. 시간이 조금.. 크헉!
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Johan Kim 기다림
2008/04/21 11:37

api.rubyonrails.org renewal 웹/프로그래밍2008/04/21 11:37

흠..멋진걸..!! -ㅅ-;
확인해보니 host가 있는건 전부 이러네..
rubyonrails.org 만 제대로 뜨고;;
사용자 삽입 이미지

크리에이티브 커먼즈 라이선스
Creative Commons License

'웹/프로그래밍' 카테고리의 다른 글

firefox3를 설치했습니다. (내용 추가08/06/18)  (4) 2008/06/17
flowchart.com의 js  (0) 2008/05/23
api.rubyonrails.org renewal  (0) 2008/04/21
vista로 국민은행(kbstar.com)가기..  (0) 2008/03/25
관심사  (0) 2008/03/18
소리바다 상황을 보면서..  (4) 2007/10/15
Posted by Johan Kim 기다림