タグ付けされた質問 「ruby」

Rubyは、マルチプラットフォームのオープンソースの動的オブジェクト指向インタープリタ言語であり、1995年に松本幸宏(Matz)によって作成されました。[ruby]タグは、Ruby言語に関連する質問(構文やライブラリなど)を対象としています。Ruby on Railsの質問は[ruby-on-rails]でタグ付けする必要があります。

7
Rubyクラスのインスタンス変数とクラス変数
「Rubyインスタンス変数はいつ設定されますか?」と読みましたが、クラスインスタンス変数をいつ使用するかは2つ考えています。 クラス変数はクラスのすべてのオブジェクトで共有され、インスタンス変数は1つのオブジェクトに属します。クラス変数がある場合、クラスインスタンス変数を使用する余地はあまりありません。 誰かがこれらの2つの違いとそれらをいつ使用するかを説明できますか? 次にコード例を示します。 class S @@k = 23 @s = 15 def self.s @s end def self.k @@k end end p S.s #15 p S.k #23 私は理解しました、クラスインスタンス変数は継承チェーンに沿って渡されません!

7
1つの配列に別の配列のすべての要素が含まれているかどうかを確認する方法
与えられた: a1 = [5, 1, 6, 14, 2, 8] 次のすべての要素が含まれているかどうかを確認したいと思います。 a2 = [2, 6, 15] この場合の結果はfalseです。 そのような配列の包含を識別するための組み込みのRuby / Railsメソッドはありますか? これを実装する1つの方法は次のとおりです。 a2.index{ |x| !a1.include?(x) }.nil? より良い、より読みやすい方法はありますか?

8
「json」ネイティブgemにはビルドツールがインストールされている必要があります
私がしているruby 1.9.2p180 (2011-02-18) [i386-mingw32]私のWindows 7マシンにインストール。ここで、「gem install json」コマンドを使用してJSON gemをインストールしようとすると、次のエラーが発生しました。 ERROR: Error installing JSON: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from '[http://rubyinstaller.org/downloads][1]' and follow the instructions at '[http://github.com/oneclick/rubyinstaller/wiki/Development-Kit][2]' 次に、DevKit-4.5.0-20100819-1536-sfx.exeをダウンロードしました。それをC:\ DevKitに解凍しました。そして、コマンドプロンプトから以下のコマンドを実行しました。 ruby dk.rb init 上記のコマンドを実行した後、config.yamlが生成され、rubyフォルダーのパスが自動的に追加されていることを確認しました。これは、config.yamlファイルの下部にある行「-C:/ Ruby192」です。 ruby dk.rb review …
178 ruby  json  windows-7  rubygems 


7
Ruby on Railsでは、「日10月5日」のように、「th」という接尾辞で日付をどのようにフォーマットしますか?
日付を次の形式で表示したい:短い曜日、短い月、先行ゼロなしの日付、ただし「th」、「st」、「nd」、または「rd」のサフィックスを含む。 たとえば、この質問が尋ねられた日は、「10月2日(木)」と表示されます。 Ruby 1.8.7を使用していますが、Time.strftimeはこれを実行していないようです。存在する場合は、標準ライブラリを使用します。
177 ruby-on-rails  ruby  date 

13
OSXでインストールされているすべてのgemをアンインストールしますか?
以前のすべてのgemインストールを元に戻してアンインストールしたい場合があります。 たとえば、RVMを使用するために友人がRails開発マシンを移行するのを支援する必要がありました。以前はシステム全体gemで使用していたため、複数のプロジェクトで作業するときに多くの頭痛の種を抱えていました。 本質的に、彼はRVM変換の代名詞でした。 OSXシステム上のすべてのgemをエレガントにアンインストールするにはどうすればよいですか?
177 ruby  rubygems 

7
ハッシュに新しいアイテムを追加する方法
Rubyは初めてですが、既存のハッシュに新しいアイテムを追加する方法がわかりません。たとえば、最初にハッシュを作成します。 hash = {item1: 1} その後item2を追加したいので、この後にハッシュは次のようになります: {item1: 1, item2: 2} ハッシュに対してどのような方法をとればいいのか分かりません。誰か助けてもらえますか?
177 ruby  hash 



16
レール内のSTIサブクラスのルートを処理するためのベストプラクティス
私のRailsのビューとコントローラが散らばっているredirect_to、link_toと、form_forメソッド呼び出し。ときどきlink_to、redirect_toリンクしているパスでは明示的ですが(例:)link_to 'New Person', new_person_path、多くの場合、パスは暗黙的です(例:)link_to 'Show', person。 モデルにいくつかの単一テーブル継承(STI)を追加し(たとえばEmployee < Person)、これらのすべてのメソッドがサブクラスのインスタンスで壊れます(たとえばEmployee)。railsを実行するとlink_to @person、でエラーが発生しundefined method employee_path' for #<#<Class:0x000001022bcd40>:0x0000010226d038>ます。Railsは、従業員であるオブジェクトのクラス名で定義されたルートを探しています。これらの従業員ルートは定義されておらず、従業員コントローラーもないため、アクションも定義されていません。 この質問は以前に尋ねられています: でStackOverflowの、答えはあなたの全体のコードベースでのlink_toなどのすべてのインスタンスを編集して、明示的にパスを述べることです 上のStackOverflow再び、二人が使用することをお勧めroutes.rb(親クラスにサブクラスのリソースをマッピングするためにmap.resources :employees, :controller => 'people')。同じSOの質問の一番上の答えは、コードベースのすべてのインスタンスオブジェクトを使用して型キャストすることを示唆しています.becomes StackOverflowのもう1つの方法は、トップの答えはDo Repeat Yourselfキャンプでの方法であり、すべてのサブクラスに重複する足場を作成することを提案しています。 ここでだ同じ質問がトップの答えはちょうど間違っているように思わSO、再び(Railsの魔法だけで動作します!) Webの他の場所で、F2Andyがコード内のすべてのパスで編集することを推奨しているこのブログ投稿を見つけました。 ブログ投稿「単一テーブルの継承と論理的現実の設計でのRESTfulルート」では、上記のSOの回答番号2のように、サブクラスのリソースをスーパークラスコントローラーにマップすることをお勧めします。 Alex ReisnerがRailsでシングルテーブル継承を投稿しています。routes.rbそこlink_toではredirect_to、とからのルーティングの破損のみをキャッチし、からのルーティングの破損はキャッチしないため、での子クラスのリソースの親クラスへのマッピングに反対していform_forます。したがって、代わりに親クラスにメソッドを追加して、サブクラスがクラスのうそをつくようにすることをお勧めします。良さそうですが、彼の方法は私にエラーを与えましたundefined local variable or method `child' for #。 最もエレガントなようで、ほとんどのコンセンサスを持っている答えは、だから、(それがすべてではないことを、エレガント、またその多くのコンセンサスが)、あなたにリソースを追加することですroutes.rb。ただし、これはで機能しませんform_for。明確にする必要があります!上記の選択肢を抽出するために、私のオプションは サブクラスのリソースをスーパークラスのコントローラーにマップしますroutes.rb(サブクラスでform_forを呼び出す必要がないことを願っています) クラスを互いに嘘をつくようにレール内部メソッドをオーバーライドする オブジェクトのアクションへのパスが暗黙的または明示的に呼び出されるコード内のすべてのインスタンスを編集して、パスを変更するか、オブジェクトを型キャストします。 これらすべての相反する答えがあるため、判決が必要です。良い答えはないようです。これはレールの設計の失敗ですか?もしそうなら、それは修正される可能性のあるバグですか?または、そうでない場合は、誰かが私にこれを真っ直ぐに設定して、各オプションの長所と短所を説明し(または、それがオプションではない理由を説明して)、正しい答えと理由を教えてください。それとも私がウェブで見つけていない正しい答えはありますか?

14
rspecでのモジュールのテスト
rspecでモジュールをテストする際のベストプラクティスは何ですか?いくつかのモデルに含まれるモジュールがいくつかありますが、今のところは、各モデルのテストが重複しているだけです(違いはほとんどありません)。乾かす方法はありますか?
175 ruby  unit-testing  rspec 

3
(単項)*演算子はこのRubyコードで何をしますか?
Rubyコードを考える line = "first_name=mickey;last_name=mouse;country=usa" record = Hash[*line.split(/=|;/)] *演算子以外の2行目はすべて理解しています -何をしているのか、これのドキュメントはどこにありますか?(ご想像のとおり、このケースを検索するのは困難です...)
174 ruby  operators  splat 

5
Railsにテーブルが存在するかどうかを確認する
テーブルが存在しないと機能しないRakeタスクがあります。私はWebサイトで20人以上のエンジニアと作業しているので、それぞれのテーブルにデータを取り込むレーキタスクを実行する前に、テーブルを移行したことを確認します。 ARには次のような方法がありTable.existsますか?テーブルが正常に移行されたことをどのように確認できますか?


3
Ruby 1.9.3とRVMをインストールしたが、コマンドラインにruby -vが表示されない
これがコンソール出力です: sergio@sergio-VirtualBox:~$ rvm list rvm rubies ruby-1.9.3 [ i386 ] sergio@sergio-VirtualBox:~$ rvm use 1.9.3 Using /usr/share/ruby-rvm/gems/ruby-1.9.3 sergio@sergio-VirtualBox:~$ ruby -v The program 'ruby' can be found in the following packages: * ruby1.8 * ruby1.9.1 Try: sudo apt-get install <selected package> どうしたの?マシンを再起動する必要がありますか?それとも、すぐに機能する必要がありますか?私はUbuntu 11.10を使用していますが、どんな助けにも感謝します。
173 ruby  ubuntu  rvm 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.