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

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

2
ruby配列を関数の引数に変換
アレイがあるとしましょう。配列を関数に渡したいのですが。ただし、関数には2つの引数が必要です。その場で配列を2つの引数に変換する方法はありますか?例えば: a = [0,1,2,3,4] b = [2,3] a.slice(b) Rubyでエラーが発生します。 Thanksのa.slice(b[0],b[1])ように、もっとエレガントなものを探していると入力する必要がありa.slice(foo.bar(b))ます。

10
Rubyでプライベートメソッドを配置する場所は?
ほとんどのブログ、チュートリアル、または本には、クラス/モジュールの下部にプライベートメソッドがあります。これはベストプラクティスですか? 必要に応じてプライベートメソッドを使用する方が便利だと思います。例えば: public def my_method # do something minion_method end private def minion_method # do something end public def next_method end このようにして、連続的に上下にスクロールするのではなく、コードが読みやすくなるので、非常にイライラします。 このアプローチにひどい問題がありますか?下部にプライベートメソッドを設定するのは、ベストプラクティスやその他の方法だけではありませんか?
95 ruby  conventions 


4
Herokuの問題にアプリをプッシュする
アプリをherokuにプッシュしようとすると、次のメッセージが表示されます。 $ heroku create Creating electric-meadow-15..... done Created http://electric-meadow-15.heroku.com/ | git@heroku.com:electric-meadow-1 5.git $ git push heroku master ! No such app as fierce-fog-63 fatal: The remote end hung up unexpectedly 私がこれを手に入れているのは奇妙です、私は問題なく何度もアプリをherokuにプッシュしました。特に奇妙なのは、fierce-fog-63私がずっと前に作成して削除した古いアプリです。Herokuが存在しないこのアプリにプッシュしようとしているのはなぜですか、特に新しいアプリを作成したときはなぜですか?助言がありますか?

2
Rails Console:リロード!モデルファイルの変更を反映していませんか?考えられる理由は何ですか?
以前は問題なく動作していました。私は少し設定を遊んでいます。知らないうちにいくつかの設定を変更した可能性があります。 ここにenvironment / development.rbの設定があります config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true # Show full error reports and disable caching config.consider_all_requests_local = true config.action_view.debug_rjs = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false # …


4
Rubyカスタムエラークラス:メッセージ属性の継承
カスタム例外クラスに関する情報があまり見つからないようです。 私が知っていること カスタムエラークラスを宣言し、それをから継承させるStandardErrorことができるため、次のようになりますrescue。 class MyCustomError < StandardError end これはあなたがそれを使ってそれを上げることを可能にします: raise MyCustomError, "A message" 後で、救助時にそのメッセージを受け取ります rescue MyCustomError => e puts e.message # => "A message" 私の知らないこと いくつかのカスタムフィールドを例外にしたいがmessage、親クラスから属性を継承したい。例外クラスのインスタンス変数ではないこのトピックを読ん@messageだので、継承が機能しないのではないかと心配しました。 誰か私にこれの詳細を教えてもらえますか?object属性を使用してカスタムエラークラスを実装するにはどうすればよいですか?次は正しいですか: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end その後: raise MyCustomError.new(anObject), "A message" 取得するため: rescue MyCustomError …

7
Ruby:変数を文字列にマージする
Rubyで、変数を文字列にマージするより良い方法を探しています。 たとえば、文字列が次のような場合: 「」animal actionsecond_animal そしてanimal、actionとのsecond_animal変数があります。これらの変数を文字列に入れるための好ましい方法は何ですか?
95 ruby  string 

6
Rails 3でUTCを現地時間に変換する
Rails 3でUTC TimeまたはTimeWithZone現地時間に変換できません。 セイはmomentいくつかあるTimeUTC(例えば、変数moment = Time.now.utc)。momentDSTを処理して(EST / EDTを使用して)、タイムゾーンに変換するにはどうすればよいですか? より正確には、時刻が今朝の午前9時EDTに対応している場合は「月曜日3月14日9時」、最後の月曜日の午前9時(米国東部標準時)の場合は「月曜日3月7日9時」を印刷します。 うまくいけば、別の方法がありますか? 編集:「EDT」は認識されるタイムゾーンである必要があると最初に考えましたが、「EDT」は実際のタイムゾーンではなく、タイムゾーンの状態に似ています。たとえば、要求しても意味がありませんTime.utc(2011,1,1).in_time_zone("EDT")。「EST」は実際のタイムゾーンであり、夏時間を使用せず、(UTC-5)年間であるいくつかの場所で使用されるため、少し混乱します。

14
Rubyでは、「select」と「map」を組み合わせたArrayメソッドはありますか?
いくつかの文字列値を含むRuby配列があります。する必要がある: 一部の述語に一致するすべての要素を検索します 一致する要素を変換で実行します 結果を配列として返す 現在、私のソリューションは次のようになります。 def example matchingLines = @lines.select{ |line| ... } results = matchingLines.map{ |line| ... } return results.uniq.sort end selectとmapを組み合わせて単一の論理ステートメントにするArrayまたはEnumerableメソッドはありますか?
95 ruby 

7
$ LOAD_PATH(Ruby)にディレクトリを追加する
現在実行中のファイルのディレクトリを$ LOAD_PATH(または$ :)に追加するために一般的に使用される2つのテクニックを見てきました。宝石を扱っていない場合に備えて、これを行うことの利点がわかります。明らかに、どちらか一方がもう一方よりも冗長であるように見えますが、どちらか一方を他方と重ねる理由はありますか? 最初の詳細な方法(やり過ぎかもしれません): $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__))) そして、より簡単で迅速かつ汚い: $:.unshift File.dirname(__FILE__) どちらか一方を使う理由はありますか?

8
レコードがない場合にnilを指定してfind()
私のようなものを使用するときの私の現在のレールプログラムで user = User.find(10) ID = 10のユーザーがいない場合、次のような例外があります。 ActiveRecord::RecordNotFound: Couldn't find User with ID=10 例外を発生させる代わりにnilを取得できますか? unless user = Challenge.find(10) puts "some error msg" end レコードがないときにnilを取得したいだけで、begin / rescueを使用したくない ありがとう


4
Rubyのモジュール/ミックスインからクラスメソッドを継承する
Rubyでは、クラスメソッドが継承されることが知られています。 class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works ただし、ミックスインでは機能しないのは驚きです。 module M def self.mm; puts 'mixin' end end class N; include M end M.mm # works N.mm # does not work! #extendメソッドがこれを行うことができることを知っています: module X; def mm; puts 'extender' end end Y = …
95 ruby  mixins 


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