Атаулар кеңістігі модельдері \ сыныптар қалай?

Мен ruby on Rails 3.1.1-де пайдаланамын және «дерекқор» атауларын сақтау үшін, « namespaced » үлгісін қолданыңыз «және» associated with ruby on Rails Way « . Яғни, келесі файлдық жүйе бар:

- app/models/article.rb
- app/models/articles.rb
- app/models/articles/comment.rb
- app/models/articles/category.rb
- app/models/articles/...

Байланысты дерекқордың кесте аттары тиісінше:

# Note: Since the 'app/models/articles.rb' file is related to a module (read
# below for more information) it has not a related database table
- articles
- articles_comments
- articles_categories
- ...

app/models/articles.rb файлында менде бар:

module Articles
  def self.table_name_prefix
    'articles_'
  end
end

Қолдану үшін app/models/articles/comment.rb ішінде бармын

class Articles::Comment < ActiveRecord::Base
  ...
end

Бұл «атау» атауларының сыныптарын пайдалануға арналған дұрыс жол?


класы орнына сингулярлық аттар кеңістігіне (мысалы: class article :: comment ... end ) пайдалану үшін «дұрыс» әдіс болуы мүмкін :: Comment ... end ) және файлдарды ұйымдастыру үшін /articles/ орнына /article/ каталогын пайдалану үшін. Бұл жағдайда файлдық жүйе:

# Note: the 'app/models/articles.rb', maybe, should not be present
- app/models/article.rb
- app/models/article/comment.rb
- app/models/article/category.rb
- app/models/article/...

If so, how it should work for the app/models/articles.rb file (no more present in the last example) in order to keep database table name prefix to articles?

2
@Андрю Маршалл - Егер сіз ескі мәселені оқыған болсаңыз (мен үшін), ол ағымдағыден айтарлықтай ерекшеленеді.
қосылды автор user502052, көзі
@pneadiving - Мен өзімнің үлгі файлдарын оңай ұйымдастырғым келеді (мүмкін, аттар кеңістігін пайдаланып, бұл «жұмыс» жеңілдетеді).
қосылды автор user502052, көзі
Мақала ретінде article.rb-ді түсінбеймін, бұл нені білдіреді?
қосылды автор apneadiving, көзі

1 жауаптар

Рельстердің жолы - мұны жасамау.

Үлкен-үлкен логикалық бөлімдер үшін аттар кеңістігі үлгілері мен контроллерлерді ғана қолданасыз. Мысалы, басқару кезінде қолданылатын әкімші үлгілері болса, сізде болуы мүмкін:

app/admin/report.rb
app/admin/dashboard.rb

Сіз оларға Admin :: Report деп сілтеме жасайсыз

Бірақ «Админ» нысаны жоқ - сіздің мысалыңызда сізде «бап» нысаны бар ... Мен сіздің файлдарыңызды осы жолмен топтаспаймын ... олардың бәрін ғаламдық аттар кеңістігінде сақтаңыз.

0
қосылды
Егер менде «үлкен-үлкен» логикалық айырмашылықтар болса, не істей аламын?
қосылды автор user502052, көзі
Жоғарыда ғана әкімші сияқты.
қосылды автор Jesse Wolgamott, көзі