2013-06-06 48 views
6

Rails là tất cả về 'Convention over Configuration'. Tuy nhiên, tôi đã không đi qua một 'tiêu chuẩn' cho thứ tự của các hiệp hội, phạm vi, bao gồm, xác nhận, ... trong các mô hình Rails được nêu ra. Lấy ví dụ: mô hình sản phẩm, đơn giản hóa sau đây:Thứ tự chính xác của các liên kết, phạm vi, xác thực, v.v. trong các mô hình Rails

class Product < ActiveRecord::Base 
    mount_uploader :logo, AssetUploader 
    acts_as_taggable 
    paginates_per 50 

    include ActionView::Helpers::NumberHelper 

    belongs_to :company 

    validates_presence_of [:title, :price, :plu] 

    scope :on_website, where(display: true) 

    def display_price 
    ... 
    end 
end 

Đây có phải là thứ tự đúng không? Nó có thể không phải là rằng quan trọng đối với nhiều người, nhưng cá nhân tôi nghĩ rằng nó sẽ là tuyệt vời nếu có một quy ước về điều này.

+4

Tôi không biết về quy ước như vậy. Ngoài ra, vì ruby ​​không quan tâm, * mọi thứ tự * là đúng. –

+0

Bạn không đồng ý nó sẽ là tốt đẹp nếu có một quy ước? – lafeber

+0

Tôi đoán nó không quan trọng miễn là bạn giữ các phần liên quan với nhau, để dễ dàng tìm thấy chúng. –

Trả lời

4

Không có quy ước như vậy. Nhưng bạn có thể tạo một cho dự án của bạn và nhất quán với nó trong tất cả các mô hình. Đây là những gì tôi làm theo.

class Model < ActiveRecord::Base 
    #all mixins 
    include Something 
    extend Something 

    #other stuff 
    acts_as_taggable 
    paginates 

    #associations 
    has_many :something 
    belongs_to :something_else 

    #validations 
    validate_presence_of :something 

    #scopes 
    scope :something 

    #instance methods 
    def instance_method 
    end 

    #class methods 
    def self.method 
    end 

    #private methods 
    private 
    def method2 
    end 
end