2011-11-02 1 views
1

내가 같은 ID의 날짜와 friendly_id 사용하고 싶습니다 : friendly_id을 : 날짜Rails - friendly_id : 어떻게 datetime과 같은 friendly_id 매개 변수를 포맷 할 수 있습니까?

friendly_id의 매개 변수 형식을 구성하는 방법이있다 : 디스플레이를 변경하도록 (여기 날짜)? (여기에 "2010-05-09 00:00:00 UTC"보다 낫습니다.)

+0

이와 비슷한 질문에 대한 답변이 많이 있습니다. http://stackoverflow.com/questions/3677753/how-to-display-current-date-in-mm-dd-yyyy-format-in- 레일 그래서 당신이보고 싶은 것을 알 때, 그것을 포맷하기위한 문제 일뿐입니다. – mliebelt

+0

답변 해 주셔서 감사합니다. 내 게시물을 더 명확히하기 위해 편집했습니다. 날짜의 friendly_id : 매개 변수의 형식을 구성하고 싶습니다. –

+0

이유를 설명 할 수 있습니까? 더 나은 방법이있을 수 있습니다. 왜냐하면 당신이 원하는 것은 사용 된 방법이 아니기 때문이며, 이것을 바꾸고 싶다면 편집 할 수 있기 때문입니다. 어쩌면 우리는 근본적인 문제를 해결할 수 있습니다! – davidb

답변

1

표준 created_at 및 updated_at 위에 추가 열이있는 경우이를 사용하여 friendly_id를 만들 수 있습니다.

friendly_id 콜백 다음에 채워지기 때문에 표준 created_at 열과 함께 작동하지 않습니다. 레코드가 실제로 생성되지 않았다는 의미입니다. 당신이 열이 ... 당신이 할 수있는 날짜의 유형 report_date 말이있는 경우

...

# app/models/report.rb ## using friendly_id 3.x 
class Report < ActiveRecord::Base 
    # I recommend using a cache column as well. 
    has_friendly_id :report_slug, :use_slug => true, :cache_column => 'cached_slug' 
    before_create :set_report_date 

    def set_report_date 
    self.report_date = Time.now 
    end 

    def report_slug 
    report_date.strftime('%d-%m-%Y') 
    end 
end 

또는 FriendlyId 4.x의이 같은

class Home < ActiveRecord::Base 
    extend FriendlyId 
    friendly_id :report_slug, :use => :sluggable 
    before_create :set_report_date 

    def set_report_date 
    self.report_date = Time.now 
    end 

    def report_slug 
    report_date.strftime('%d-%m-%Y') 
    end 
end 

모두 당신이 필요 before_create과 set_report_date 방법을 사용하여 4.x의

를 사용하는 경우 모델에 슬러그라는 문자열 열, 당신은 보장 할 수있는값은 한 번만 작성됩니다 (작성시). strftime에 대한

일부 옵션은 여기에서 찾을 수 있습니다 : 도움이 https://gist.github.com/1965714

희망을.