-
ドキュメントを超えて新しいライブラリを学ぶ方法
まったく新しいライブラリまたは機能を使用していて、ドキュメントを理解できません。セットアップが難しいかもしれないので、すべてがどのように組み合わされるかを学ぶまで、RDoc間を行き来する必要があります。たぶん、ドキュメントは存在しません。 または、多くの例を見て最もよく学ぶことができるかもしれません。 助けが必要です。しかし、ドキュメントではないにしても、機能の使用方法をどこで学びますか? 私のお気に入りのGitHub機能の1つ ドキュメントを超えてライブラリや機能の実際の使用法を確認したい場合は、GitHubのコード検索を使用してください。 たとえば、条件付きGETサポートに関する
-
すべての苦痛なしで`Respond_to`
Railsでスキャフォールドを生成すると、通常のrespond_toが表示されます。 ブロック: app / controllers / tasks_controller.rb def destroy @task.destroy respond_to do |format| format.html { redirect_to tasks_url, notice: Task was successfully destroyed. } format.json { head :no_content } end end ただし、index
-
`メソッド`メソッドを楽しむ
ブロックのみを受け取る関数にメソッドを渡したいと思ったことはありませんか?または、オブジェクトのどのスーパークラスが、呼び出そうとしているメソッドを壊したかを把握しますか? これらはmethodで簡単に実行できます メソッド。 これを上手に使用すると、依存関係について学び、デバッグの時間を節約し、コードを必要な場所に配置できます。 ラムダと同じくらい簡単なメソッド 多くのRubyメソッドはブロックまたはラムダを取ります。ただし、ラムダの場合のように、メソッドを別のメソッドに直接渡すことはできません。 methodを使用する必要があります 最初: irb(main):001:0> si
-
`Irb`、` Bundle Exec Irb`、 `Bundle Console`、` Rails Console`の違いは何ですか?
RubyまたはRailsコンソールを起動する方法はたくさんあります:irb 、bundle exec irb 、bundle console 、およびrails console 最も一般的なもののいくつかです。それらは似ているように見えますが、それぞれ動作が少し異なります。 これらの違いがわからない場合は、いくつかの問題が発生します。 ActiveRecordモデルをデータベースに接続できない可能性があります。または、ファイルが必要で、間違ったバージョンを取得します。または、利用可能だと思っていたライブラリは利用できませんでした。 適切なコンソールを適切なタイミングで使用していることをどの
-
それぞれ...またはその他
eachが大好きです 、しかし私はそれに問題があります。 空のコレクションがあるとどうなりますか? [].eachを呼び出す場合 、何も起こらず、[] 返されます。時々、それはあなたが望むものです。 ただし、特にUIを構築する場合は、空のリストを特別な方法で処理する必要があります。 たとえば、データがない場合は通常、別のメッセージを表示したいと思います。 しかし、[].each以降 []を返します 、nilではありません 、あなたはこのようなものを書くのに行き詰まっています: app / views / users / index.html.erb <% if @users.e
-
小さなActiveSupportモジュールでより良いグローバル
一般的に、グローバル変数は悪いです。ただし、適切な場所にグローバルを配置すると、コードが大幅に簡素化される場合があります。 Railsでは、リクエスト中に1回データを設定できますが、アプリのすべてのレイヤーで使用します。どのユーザーがリクエストを行っていますか?彼らはどのような許可を持っていますか?どのデータベース接続を使用する必要がありますか? この情報はコード全体で利用できるはずなので、どこにでも渡すのはノイズの集まりになります。ただし、Rubyグローバル変数を使用したり、クラス変数を設定したりすると、独自の問題が発生します。複数のスレッドがそれを上書きする可能性があり、結果的に大きな
-
悪い抽象化があなたのコードを手錠するのを防ぐ方法
(この投稿は、数か月前にリストに送信したものに基づいています。毎週このように読むには、ここに参加してください!) プログラミングフローを節約するために少し便利な方法を使用する際に、最も単純な抽象化によってコードベースの操作をより楽しくする方法について説明しました。 しかし、悪いがある場合はどうでしょうか 抽象化? APIリファレンスを毎回掘り下げます その方法が明確に何であるかを理解する leaderboardという名前にする必要があります 実際に呼ばれます。あなたはそれをリファクタリングしようとしますが、コードの一部は構造化データを渡し、他の部分は生のテキスト行を提供します。そして、
-
あなたのコードはどこに行きますか?
Railsチュートリアルを終了して独自のアプリを起動すると、混乱が生じます。非CRUDの一般的なロジックはどこに行くのですか? Twitterからフォロワーを獲得することはMVCにどのように適合しますか? 2人に聞いてみると、4つの答えが得られます。または、あなたが机に頭をぶつけている間、あなたのスレッドは何時間もお互いを侮辱する賢い人々の束に発展します。いずれにせよ、あなたは頭痛の種になります。 夢見ていたアプリを作成するには、いくつかが必要です。 一般的な、Rails以外のロジック。 では、コードをどこに配置し、それでも物事をシンプルに保つのでしょうか? 簡単に始められる場所 既存のA
-
競合するレールのアドバイスから選択する方法
Railsコミュニティはいっぱいです 相反するアドバイスの。 MinitestまたはRSpecを使用していますか?プレーンなRubyオブジェクトをapp/modelsに入れますか 、app/classes 、またはlib/ ? より経験豊富な開発者がこれらのことについて絶えず議論している場合、どのアドバイスに従うかを決定することについて、どのような希望がありますか? 秘密は何ですか? ここに秘密があります:片側を選ぶだけです 、そしてそれに従ってください。 それは警官のようです。しかし、これらは哲学の小さな違いについての議論です。議論が強ければ強いほど、実際の選択の重要性は低くなります
-
アプリをテストなしからTDDに移行するにはどうすればよいですか?
あなたは自分が作ったアプリに興奮しています。問題は1つだけです。つまり、テストがありません。テスト駆動開発を使用して記述したかったのですが、どこから始めればよいのかよくわかりませんでした。だからあなたは立ち往生しています。ここからどこへ行くの? テストなしのアプリから、TDDを使用してアプリを作成するにはどうすればよいですか? すでに持っているコードをテストする テストのないコードがたくさんあります。しかし、それはあなたがテストを書くことができないという意味ではありません今 、既存のコードに対して。したがって、既存のコードのテストを開始して、コードが期待どおりに機能することを確認します。
-
2014年に学んだ教訓
日常のちょっとした仕事で迷子になるのはとても簡単です。 集中していると、これらすべての小さなステップで実際に達成したことを完全に見逃す可能性があります。 そこで、昨年私が行った執筆とスピーチを振り返り、その過程で学んだ最高のことを紹介します。 何がうまくいったか 私は1月10日にここに書き始めました。見積もりは目標ではなく、コミュニケーションツールです。 2014年に53を投稿しました 記事、週に1つ以上! 4月から毎週火曜日に記事を投稿しました。 そのようなスケジュールを作成すると、作成と計画がそうなります。 はるかに簡単です。 私は数回前に書き始めようとしましたが、常に2つの理由
-
エッジケースが完璧なソリューションに穴を開けるとき
あなたはあなたのクレイジーなテスト問題に対する完璧な解決策を見つけました。あなたがしなければならないのは、DEFAULT_HOSTをオーバーライドすることだけです 一定であり、あなたはビジネスになります。 その醜いメッセージを消すために警告をオフにしなければならないことを除いて。しかし、今 すべてのテストに合格し、数行のコードを変更するだけで済みました! しないその1つのテストを除いて ホストをオーバーライドしたい。ただし、定数を再度オーバーライドし、警告を再度オフにして、テストの最後にリセットされることを確認することもできます。 完成間近なので、ほとんど味わうことができます! を除い
-
混乱せずにモンキーパッチを適用する3つの方法
モンキーパッチ。初めてRubyを試してみると、すばらしいです。コアクラスにメソッドを直接追加できます! Time.now.advance(days: -1)を呼び出す必要はありません 、1.day.agoと書くことができます !それはRubyを読み書きする喜びにします。まで… パッチがHashを変更したため、奇妙なバグが発生しました 。 どのコードが実際に実行されたかについて混乱するため、コードが壊れたときにデバッグすることはできません。 そして、6か月前に、Enumerableにモンキーパッチを適用したときに、すべての問題が発生したことがようやくわかりました。 1行のコードを5文字短く
-
Rails4.2にアップグレードする方法
一部のRailsアプリのアップグレードは、bundle update railsと同じくらい簡単です。 。 ただし、その他のいずれかがある場合はどうなりますか 種類のアプリ? Rails 4.0、さらには3.2に残っているものは、未来に向かって蹴ったり叫んだりする気がしなかったからですか? 迅速なアップグレードに直面している場合でも、面倒なアップグレードに直面している場合でも、これらの手順は、アプリを可能な限りスムーズにRails4.2に移行するのに役立ちます。その過程で、Rails4.2の新機能を最大限に活用する方法を学びます。 アップグレードガイドを読む Railsアップグレードガイ
-
新しいRailsプロジェクトを回避する方法を見つける
Leonid Suschevのおかげで、この記事はロシア語に翻訳されました。 職場のチームを変更したか、新しい仕事を始めたばかりです。または、お気に入りのオープンソースアプリにバグを見つけ、最初のプルリクエストを作成したいと考えています。 ただし、 git cloneを実行した後 app / modelsを開きます 、あなたは完全に失われています。 Railsの構造 慣れているものと同じですが、コードを回避する方法を見つけることは不可能です。 。では、この新しい、なじみのないRailsアプリを学ぶための最速の方法は何でしょうか? プロジェクトの語彙を作成する Playerとは 、およ
-
Railsの質問が生産性を損なうのを防ぐ方法
Railsの練習が終了しました! 2月13日金曜日まで25%オフで入手できます。 コードを書いている間、質問が頭に浮かびます常に :このメソッドを呼び出すにはどうすればよいですか?どのようなオプションが必要ですか?数字の代わりにオブジェクトを渡すとどうなりますか? これらの質問は生産性を損ないます。 すぐに答えがわからないときは、自分が何をしていたかを忘れてしまいます。流れから抜け出し、中断したところに戻るのに30分かかります。 では、速度を落とさずに必要な答えをどのように見つけますか? 高速ルックアップ APIドキュメントを検索するときは、速度が重要です。 あなたはあなたの答えを
-
練習用レールが利用可能になりました!
レールの練習 、圧倒されることなくRailsを学ぶことに関する私の本が利用可能になりました。また、木曜日の夜の午後11時59分まで25%オフでご利用いただけます ! (太平洋時間) ここでそれを拾います:https://www.justinweiss.com/practicing-rails 少し背景: ここに書いている間、Railsの入門書やビデオを読み、Railsのさまざまな部分を学びましたが、それでもRailsアプリのチュートリアルを超えることはできないという多くの人々から聞いたことがあります。 彼らはそれが楽しいはずだと聞いたが、実際にはただイライラした。彼らはどこから始め
-
最初のRubyGemを抽出するためのガイド
GitHubコントリビューションチャートは灰色で表示されていますか?オープンソースプロジェクトを使用して作業することができます。ただし、最初から始める必要はありません。 便利なサイドプロジェクトを作成する最も簡単な方法は、既に作成しているアプリからプロジェクトを引き出すことです。 それがRailsの誕生です! しかし、何を抽出するかをどうやって知るのでしょうか?そして、ワークフローを破壊することなく、どのようにしてそれを宝石に変えるのですか? 抽出するコードを見つけます。 アプリの奥深くに、そこに属していないコードがあります。 必要のないコード その仕事をするためにあなたのアプリ。どこにあ
-
出荷するようにRailsアプリを構成する方法
最初の本番アプリを起動する準備ができたら、外部サービスと通信するときが来ました。あなたはまだすべてを接続する必要があります。 では、開発マシンで物事をより複雑にすることなく、本番環境でサービスを構成するための最良の方法は何ですか? 環境を設定する 本番アプリを構成するための今日のベストプラクティスは、環境変数(ENV[REDIS_HOST])を使用することです。 -見た目) しかし、なぜですか? 本番キーを誤ってコミットすることはより困難です。 注意を払っていない場合は、git push 重要な秘密鍵が含まれているファイル。そして、それは費用のかかる間違いかもしれません。
-
複雑なデータモデルをキャッシュするためのより高速な方法
データモデルが複雑になり、APIがその悲しい1秒の応答時間に達した場合、通常は簡単な修正があります::includes 。 モデルの関連付けをプリロードすると、SQL呼び出しはそれほど多くなりません。 そして、それはあなたにたくさんの時間を節約することができます。 しかし、その後、サイトの速度が再び低下し、応答のキャッシュについて考えます。そして今、あなたは問題を抱えています。キャッシュから応答を取得したい場合: results = {lawyer_1: 1, lawyer_2: 2, lawyer_3: 3} cached_objects = Rails.cache.fetch_multi