Rails4.2のあまり知られていない機能
Rails 4.2の最初のベータ版は先週発表されましたが、それはすでに驚くべきものに見えます。 ActiveJob、Web Console、Adequate Record、ForeignKeyのサポートを自分のアプリで使用できることにとても興奮しています。
しかし、Railsの美しさは細部にあります。 また、少し掘り下げてみると、Railsでの日常業務を完全に改善する、あまり宣伝されていない機能がいくつか見つかります。
OK、私は偏見があるかもしれません。しかし、構成ファイルをロードするための組み込みの方法があることは素晴らしいことです。
config_for
、Rails 4.2の新機能で、期待どおりに機能します:
development:
host: localhost
port: 6379
test:
host: localhost
port: 6379
production:
host: redis-production
port: 6379
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6379}
つまり、config_for(:redis)
を呼び出すと 、config/redis.yml
を検索します Railsアプリで解析し、RAILS_ENV
の正しい構成を返します 。
yamlにERBを入れることもできます:
development:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
test:
host: localhost
port: <%= ENV['REDIS_PORT'] %>
production:
host: redis-production
port: <%= ENV['REDIS_PORT'] %>
$ REDIS_PORT=6380 bin/rails c
Loading development environment (Rails 4.2.0.beta1)
irb(main):001:0> Rails.application.config_for(:redis)
=> {"host"=>"localhost", "port"=>6380}
アプリで多くのサービスを構成すると、初期化子がはるかに読みやすくなります。
ほとんどのRailsアプリでは、試してみる前にいくつかのコマンドを実行する必要があります。ほとんど空のRailsアプリでも、起動する前にデータベースを設定する必要があります。
そのため、Railsは、設定より規約を使用して、セットアップコード専用の場所を作成しました:bin/setup
。
デフォルトは適切です。ただし、bin/setup
また、アプリを起動するために必要なその他のコードを配置する場所でもあります。
これが慣例であるため、アプリのブートストラップスクリプトを既に作成している場合は、名前をbin/setup
に変更します。 、アプリを使用しているユーザーが簡単に始められるようにします。
bin/setup
新しいRailsアプリを生成するときに行う決定が1つ少なくなります。そして、bin/setup
を実行する習慣を身に付けたら git pull
を実行した後 、rake db:setup
を実行することを覚えておく必要はありません。 新しいアプリを再度生成するとき。
これは、Rubyに組み込まれていることを望むのに十分な頻度で必要なもう1つのことです。 transform_values
を呼び出すとき ハッシュでは、map
を呼び出すように機能します ハッシュ値に対して、置き換えられた値に関連付けられた元のキーを含む新しいハッシュを返します:
h = {a: 1, b: 2, c: 3}
h.transform_values { |v| v * 2 } # => {a: 2, b: 4, c: 6}
十分に単純です。しかし、それがどれほど頻繁に役立つかに驚くでしょう。
ボーナス:より多くの構成!
Rails 4.2は、独自のグローバル構成を設定する簡単な方法を提供します。
Rails.application.config.x.some_configuration_key = "Some Value"
Rails.application.config.x.some_configuration_key # => "Some Value"
Rails.configuration.x.some_configuration_key # => "Some Value"
これは、config_for
と組み合わせると特に効果的です。 :
app_config = Rails.application.config_for(:app)
Rails.application.config.x.block_phone_calls = app_config["block_phone_calls"]
そしてもっとあります!
Rails4.2は素晴らしいリリースになるように設定されているようです。しかし、Railsで毎日作業するのがとても素晴らしいのは、ちょっとした改良です。したがって、まだ読んでいない場合は、4.2リリースノートをざっと見て、他に役立つ改善点を見つけてください。
(そして、あなたがするなら かっこいいものを見つけて、自分だけに留めないでください。ここで共有してください。そうすれば、私たち全員が新しいことを学ぶことができます!)
-
AndroidでのGoogleアシスタントの最高の機能
他のすべてのアシスタントにお金をかけさせたいGoogleアシスタントがいます。名前はGoogleアシスタントと呼ばれているため、一目瞭然です。 Alexa、Siri、Cortanaを水から吹き飛ばしたいのです。 Googleアシスタントは、昨年5月にGoogle I / Oで最初に発表されましたが、GoogleXLとPixelスマートフォンでのみ使用されていました。 Googleは、アシスタントを他の電話に移動させる準備ができています。そのため、このGoogleアシスタントで何ができるかを理解しておくことをお勧めします。 休暇の行き先を知る 特定の国を訪問しているが、どの名所に行くべきかわ
-
最高の技術に優しいバックパックの5
あなたがハイテクギアを持って旅行するなら、あなたはあなたのものを標準的なバックパックにチャックすることの欲求不満を知っています。メモリーカードのような小さなものはしばしば深淵に失われ、高価な電子機器は傷が付いたり損傷したりする可能性があります。幸いなことに、すべての電子機器をそのままにして旅行するためのより良い方法があります。 1。ライフパックソーラーパワー&盗難防止バックパック ソルガードのライフパックは、テクノロジーを保持するだけでなく、のバックパックです。 テクノロジーの一部。 Lifepackは、標準のバックパックにはないハイテクアップグレードを多数備えています。まず、内蔵のパワーバ