Djangoブログには、このフレームワークの
興味深い拡張機能のレビューを含む 投稿が定期的に見られ
ます 。 私はこのアイデアが気に入ったので、Ruby on Railsで同様の一連のメモを作成するといいと思いました。
RoRでの作業の過去9か月にわたって、私は開発者の生活を大幅に簡素化し、特定の問題を解決するためにアドバイスできる宝石の小さなリストを蓄積しました。 この記事では、そのうちの5つについて説明します。
外国人
テーブルに外部キーを作成するための小さいながらも非常に便利な宝石。 2つの新しいメソッド
add_foreign_keyと
remove_foreign_keyを移行に追加します。
そのため、たとえば、
コメントテーブルから
ユーザーテーブルにキーを追加する必要がある場合は、次の手順を実行する必要があります。
class CreateComments < ActiveRecord::Migration def change create_table :comments do |t|
Githubページペースカー
thoughtbotからの
人々からの
非常に興味深い宝石。 その本質は、接続先のモデルを分析し、この分析に基づいてさまざまなスコープメソッドを追加することです。
テーブルにフィールドを持つ
postモデルがあるとします:
title 、
content 、
created_at 、
updated_at 。 そして
has_many:commentsという接続があり
ます 。 モデルにPacecarを追加します。
class Post << ActiveRecord::Base include Pacecar has_many :comments, :dependent => :destroy end
その後、たとえば、このようなスコープが使用可能になります。
Post.title_matches('Some title')
Gemにはいくつかの便利なメソッドが追加されています。詳細についてはGithubをご覧ください。
Githubページ設定ロジック
アプリケーションの設定の問題を解決する非常に多くの宝石があります。 私の意見では、最も成功しているのは悪名高い
Ben Johnsonの Settingslogicです。 シンプルで軽量、YMLファイルを使用します。
gemの作成者は、
Settingsクラスを使用して、モデル(
app / models / settings.rb )の隣に保存することをお勧めし
ます 。
class Settings < Settingslogic source "
この場合の設定ファイルは
config / application.ymlに保存され
ます :
defaults: &defaults default_email: admin@example.com development: <<: *defaults test: <<: *defaults production: <<: *defaults
設定は、現在のRails環境に関連して呼び出されます。
設定クラスを介してそれらにアクセスできます。
Settings.default_email
Githubページドキュメントletter_opener
Rain Batesによる原作者の宝石スタブ。 作業の意味は非常に簡単です-アプリケーションの構成(たとえば、config /
enviroments / development.rb)で、
letter_openerをメール配信の方法として使用することを
示します。
config.action_mailer.delivery_method = :letter_opener
その後、すべての送信メールが
/ tmp / letter_openerフォルダーに追加され始め、送信直後の各文字が新しいブラウザータブで開きます。 シンプルで便利。
Githubページ不滅の
Teambox開発者からのジェム。これにより、エントリを削除する代わりに「削除済み」としてマークできます。 不注意なユーザーをデータ損失から保護したい場合に非常に便利です。
gemを使用するには、レコードを「不滅」にしたいテーブルに
削除済みフィールドを追加する必要があります。
class AddDeletedToTasks << ActiveRecord::Migration def change add_column :tasks, :deleted, :boolean end end
次に、目的のモデルに接続します。
class Task << ActiveRecord::Base include Immortal end
これで、
タスクモデルの各エントリは、データベースから完全に削除されるのではなく、削除済みとしてマークされます。
Githubページそれだけです!
これが私がこのメモを終わらせる場所です。あなたがあなたにとって自分にとって有益な何かを見つけてくれることを願っています。