すべての機会に5つの宝石

さまざまな便利な宝石に関するトピックの続きで、RoRでの作業をさらに快適で便利なものにするいくつかの機能についてお話したいと思います。





高電圧



thoughtbotの人々からの宝石。サイト上の静的なページでの作業を大幅に簡素化します。

gemは非常に簡単に動作します-必要なページをapp / views / pagesフォルダーに追加します。 その後、ページは/ pages /(file_name)で利用可能になります。 したがって、たとえば、 app / views / pages / about.hamlにあるページexample.com/pages/aboutで利用できます

さらに、gemは、目的のページを引数として渡す必要があるpage_path urlヘルパーを追加します。 上記の例では、これはpage_path(:about)になります。



Githubページ





多くの場合、RailsからJSにデータを転送する必要があります。 これにはいくつかの解決策があります。

たとえば、追加のajaxリクエストでそれらを個別にダウンロードできます。 データが多くなく、不要な呼び出しを行う意味がない場合、 gonはこのタスクに完全に対応します。これは、コントローラーから直接データを転送できる国内メーカーの逸品です。

gemを機能させるには、まずレイアウトに追加します。



<html> <head> <title>Application Title</title> <%= include_gon %> <!--     JS -->
      
      







次に、コントローラーで、 gonを使用してデータを転送します。



 def show @user = User.find(params[:id]) gon.user = @user end
      
      







@userのデータがJSで利用可能になり、 gonオブジェクトを介してアクセスできます。 例:



 $(function() { alert(gon.user); });
      
      







gemは自分用にカスタマイズすることができます-エクスポートされた変数の名前にsnake_caseの代わりにcamelCaseを使用し、名前空間を指定し、一般的なJBuilderRABL友達になります。



Gon @ railscasts

Githubページ



http_accept_language



Railsアプリケーションで複数の言語をサポートするタスクに直面している場合は、 http_accept_language gemに注意することをお勧めします。 要求オブジェクトにいくつかのメソッドを追加し、その助けを借りて、どのユーザーが優先言語であるかを簡単に判断できます。 たとえば、次のように:



 class ApplicationController < ActionController::Base before_filter :set_locale protected def set_locale allowed_locales = %w(ru-RU en-US) I18n.locale = request.preferred_language_from(allowed_locales) || I18n.default_locale end end
      
      







Githubページ



email_spec



メーラーの動作、送信先、送信先、送信された手紙に重要な情報(アクティベーションリンク、ユーザー名/パスワードなど)が含まれているかどうかを常に把握しておくと、非常に便利です database_cleaner gemの作者のCucumberを使用すると、メーラーを簡単にテストできます。

たとえば、アカウントを有効にするための手順が記載されたメールが正しいアドレスに送信され、正しいヘッダーがあり、有効化へのリンクが含まれていることを確認する必要があります。 email_specを使用すると、次のようになります。



 describe UserMailer do let(:user) { create(:user) } describe '#confirmation_instructions' subject { UserMailer.confirmation_instructions(user.id) } it 'should be set to be delivered to the user email address' do subject.should deliver_to(user.email) #      e-mail . end it 'should have the correct subject' do subject.should have_subject(I18n.t('user_mailer.confirmation_instructions.subject')) #      . end it 'should contain the confirmation url' do subject.should have_body_text(/#{user_confirmation_url}/) #        . end end end
      
      







Githubページ



heroku_san



Herokuを積極的に使用している場合は、間違いなくこのgemに注意を払う必要があります。 heroku_sanは、展開プロセスをさらに簡単かつ高速にします。

プロジェクトに複数のHerokuインスタンス( プロダクションステージング)が必要だとします。 これを行うには、gemをインストールした後、コンソールで呼び出します:



 rake heroku:create_config
      
      







このコマンドは、このプロジェクトに関連するすべてのHerokuアプリケーションを記述する構成ファイル( config / heroku.yml )を作成します。 たとえば、 実稼働環境とステージング環境の場合、次のようになります。



 production: &defaults app: myfacebookkiller stack: cedar config: BUNDLE_WITHOUT: 'development:test' staging: <<: *defaults app: myfacebookkiller-staging
      
      







さて、これらのアプリケーションをHerokuで作成していない場合は、今すぐ実行してください。



 rake all heroku:create
      
      







heroku_sanを使用すると、プロジェクトを一度に複数のアプリケーションにデプロイできます。



 rake all deploy
      
      







または、特定のアプリケーション専用:



 rake production deploy
      
      







heroku_sanは、Herokuでの作業に役立つ多くの機能を提供します。詳細については、Githubのgithページを参照してください。



Githubページ



All Articles