Ruby
- x.divmod(y)
レシーバーとなる数値を引数で割って商と余りを配列にして返す divmodメソッドの読み方を教えてくれませんか? お暇な時でけっこうです^^よろしくお願いします。
- ベストアンサー
- Ruby
- noname#208914
- 回答数1
- railsのform_forの使い方
現在rails3.2でrailsの勉強をしています。この過程で困ったことがありましたので質問させていただきました。 それはviewにfomr_forを定義するとエラーをはいて動かないのです。 具体的にソースで説明します。 ・コントロールのソース class ComicListController < ApplicationController def index @comic_master_r = ComicMaster.new end end ・Viewのソース <%= form_for @comic_master_r do |f| %> <% end %> ・エラーの内容 undefined method `comic_masters_path' for #<#<Class:0x9da00d0>:0x9e73d04> 私個人の見解としては、form_forを使う際に必要とされるコントロール側の変数の定義が足りないからではないかと思っているのですが、googleの検索結果ではViewしか書いていないことが多く、コントロールにどんなものを定義すればいいのか、うまく判断がつきません。 ご回答お待ちしております。
- Unixのwcコマンドの簡易版ですが
ltotal = 0 #行数の合計 wtotal = 0 #単語数の合計 ctotal = 0 #文字数の合計 ARGV.each do |file| begin input = open(file) #ファイルを開く(A) l = 0 #file内の行数 w = 0 #file内の単語数 c = 0 #file内の文字数 while line = input.gets l += 1 c += line.size line.sub!(/^\s+/) #行頭の空白を削除 ary = line.split(/\s+/) #空白文字で分解 w += ary.size end input.close #ファイルを閉じる printf("%8d %8d %8d %s\n", l, w, c, file) #出力を整形する ltotal += l wtotal += w ctotal += c rescue => ex print ex.message, "\n" #例外メッセージを出力(B) end end printf("%8d %8d %8d %s\n", ltotal, wtotal, ctotal, "total") ローカル変数はメソッドを抜けると値を忘れてしまうのでは なかったでしょうか・・・ ここでltotalやwtotal等を呼び出しているのは明らかに メソッドの外部からだと思うのですが、変数に入れられた 値は保持されたまま表示されるのでしょうか
- ベストアンサー
- Ruby
- noname#208914
- 回答数2
- 【Ruby】テキスト置換を1ファイル完結にしたい
memo.txtの中に含まれている"俺の飯"という文字列を"私のごはん"というふうに置換を行いたいのですが、 現在のやり方だとファイルを開いて1行ずつ読み込んで新しいファイルに文字列を書きだしており 読み込んだ際、置換対象の文字列があった場合に置換して書きだしておりますが このやり方だとどうしても新規ファイルを出力しなければいけません。 これを新規ファイルを作らずにmemo.txtの中身だけを書き換えるようにするには どのような処理にすれば良いのでしょうか? 何卒宜しくお願い致します。 ---- sample.rb require 'rubygems' open("memo.txt"){ |f| open("after_memo.txt","w"){ |o| while line = f.gets line.gsub!("俺の飯", "私のごはん") o.puts line end } } -- memo.txt 俺の飯はリーズナブル! 俺の飯美味しそう!
- Rubyのsuperclassメソッドについて
Rubyについての質問です。処理系は1.8.7です。 class Foo def initialize(a) @a = a end end のようなクラスを作成し、そのインスタンスを foo = Foo.new(1) のように作成します。 このとき、 foo.superclassを呼び出すと NoMethodError: undefined method `ancestors' for #<Foo:0x2b691220cc88 @a=1> とエラーになります。 一方で class FooExt < Foo def initialize (a,b) @b = b super a end end のようにFooを継承したクラスを作り、 fooext = FooExt.new(1,2) fooext.superclass とすると => Foo とsuperclassメソッドが動作します。 このsuperclassメソッドはどこで追加されたものなのでしょうか?
- 締切済み
- Ruby
- mizugokoro
- 回答数1
- 別のクラスのインスタンスの作り方
現在、javaからrubyに移行するために勉強しているのですが、別のファイルに定義したクラスのインスタンスが作成できなくて、困っています。 具体例をあげると require './B' class A end def initialize b = new B end end --別のファイル class B def initialize p 'hello' end public : initalize end こんな2つのファイルがあったとして、Aのインスタンスを作成すると、 undefined method `B’ というエラーがでます。 私としてはこのエラーの原因がinitializeがデフォルトでprivate宣言なのが原因だと考えているのですが、publicと指定してもエラーとなることから、いくつか疑問が湧いたので質問させていただきます。 1、そもそもBクラスのインスタンスが作成できないのはinitializeがデフォルトでprivate宣言なのが原因なのか? 2、1があっていたと仮定するとBクラスのinitializeをpublic指定しているのになぜ呼び出せないのか? 3、rubyはなぜデフォルトでinitializeがprivateなのか?(javaではコンストラクタをprivateにするということは普通はしない。使うときはシングルトンやUtilのようなクラスを作るときに限る) 以上です。よろしくお願いします。
- Ruby on Railsのバージョン指定
Railsのバージョンを2つ入れている状態です。 $ gem list rails *** LOCAL GEMS *** rails (3.2.3, 3.1.0) この状態で3.1.0をデフォルトのバージョンにしたいので 下記のコマンドを入力します。 $ rails _3.1.0_ --version Rails 3.2.3 バージョンを指定したはずですが。3.2.3がその後に表示されます。。 念のため現在のバージョンを確認します。 $ rails -v Rails 3.2.3 やはりバージョンが3.1.0になりません。 何か足りない手順があるのでしょうか? 何卒宜しくお願い致します。
- gem でインストールされたアプリの使い方
現在railsの勉強をしているのですが、その仮定でgemを使うことがおおくなりました。 しかしgemの使い方がいまいちわかりません。 具体的にはmysqlをインストールしようと考え gem install mysql とうって、mysqlをインストールしたのですが、このソフトの使い方がわかりません。 といいますのも、mysqlとうってもコマンドはみつからず、そこで gem which mysql でrbファイルを探し出し実行したんですけど、特に反応が無い。readmeもない。 自分でインストールしていて間抜けな話なんですが、gemで入れたプログラムはどうやって使えばいいんでしょうか?ご回答お待ちしております。
- fetch_and_downcase
配列から要素を取り出してその要素に含まれるアルファベットを小文字にして返す というメソッドなんですが・・・ def fetch_and_downcase(ary, index) if str = ary[index] return str.downcase end end ary = ["Boo", "Foo", "Woo"] p fetch_and_downcase(ary, 1) hash = { 0 => "Boo", 1 => "Foo", 2 => "Woo"} p fetch_and_downcase(hash, 1) ↑の内容だとうまく実行できるのですが hash = { :0 => "Boo", :1 => "Foo", :2 => "Woo"} p fetch_and_downcase(hash, :1) ↑のようにハッシュのキーをシンボルにしたり、文字列にすると エラーがでます。 何故でしょうか? ハッシュも要素を参照するときに hash[index] の形式で参照できるので、キーがシンボルであっても うまくいくと思ったのですが、キーが数字でないとうまく 動いてくれません・・・
- ベストアンサー
- Ruby
- noname#208914
- 回答数1
- インスタンス変数とクラス変数の違い
1つのクラスオブジェクト内のインスタンス全てで共有できる クラス変数 @@a と、 同じインスタンス内であればメソッドの定義を越えてその値を 参照したり、変更したりできるインスタンス変数 @a のスコープの違いをお手すきでしたらご指導願えませんか? あとクラス変数にはセッターやゲッター等のアクセスメソッドを 設定できるんですか? いろいろ知りたいです。
- ベストアンサー
- Ruby
- noname#208914
- 回答数2
- Raild3でparamsによってRouting
Rails3で、paramsによって動的にルーティングを変える方法はあるのでしょうか? 例えば、 <form action='/example/'> <input type='submit' name='action1'/> <input type='submit' name='action2'/> </form> こういう2つのsubmitボタンがあるフォームがあった場合、どちらのsubmitを押したかでactionを切り替えたいのです。 この場合は、params[:action1]またはparams[:action2]を見て、ルーティングの切り替えができるのかなと思っています。 何か方法はないでしょうか。
- ターミナルの切り替え
SSHでVPS(Cent OS5.8)に接続してrailsのサーバーを立ち上げました。そうすると当たり前ですが実行されターミナルに状態が出力されます。このときにターミナルは別の操作ができなくなるのですが、この場合どうやれば実行させつつ別の作業操作ができるのでしょうか。 それともPC側から別のプロンプトを立ち上げてSSHでログインするのでしょうか。Linuxは初めてなのでご教授の方よろしくお願いします。
- ベストアンサー
- Ruby
- whiterozes
- 回答数2
- インスタンス変数とローカル変数のスコープの違い
Ruby言語を独学で勉強している者です。 現在たのしいRuby第3版という著書を参考にして勉強しています。 現在はクラスの継承、クラス文の定義の仕方を学んでいます。 そこで教えて欲しいのですが、 ローカル変数とはメソッドごとに異なる変数として扱われる。 インスタンス変数は同じインスタンスの中であればメソッドの定義を越えて その値を参照したり変更したりできるとあります。 そもそもインスタンスとは、オブジェクトとおほ同意義と捉えてるのですが この認識に間違いはないでしょうか。 ニュアンス的なものは理解したのですが、もう少しこの二つの変数の定義について 理屈を把握したいので、お手すきなお方がいらっしゃいましたら、具体的な例をあげて ご説明くださいませんか・・・。 この本すごく素人にもわかりやすい丁寧な解説で書いてあって、決して説明不足とは 思わないのですが、プログラマーさんの意見なども参考にしたくて投稿してみました。
- ベストアンサー
- Ruby
- noname#208914
- 回答数1
- Rubyから学ぶことについて
スクリプトから入ると説明しにくいけど、後で挫折しやすいという意見を 聞いたのですが、本当でしょうか? ちなみに独学なのですが、独学ならなおさらといってました。 Cから入るのが無難とかなんとか。 本当にそうなんでしょうか?
- ベストアンサー
- Ruby
- noname#208914
- 回答数3
- Rubyの rails runnerについて
rails runnerコマンドを実行するのに、1分以上かかります。 1分おきに定期実行を考えているのですが、とても使用できません。 1分おきに定期実行する方法はありますでしょうか。 開発実行環境 OS WindowsXP ruby 1.9.2p290 rails 3.2.2 勉強始めて3日目の初心者ですが、宜しくお願いします。
- ActiveScriptRubyについて
rubyそのものの質問でなくて申し訳ありせん。 WindowsにてActiveScriptRubyを使用しております。 http://www.geocities.co.jp/siliconvalley-PaloAlto/9251/ruby/ の記述にて、「できること」に「WScript, CScriptからのRubyスクリプトの実行」とあったので試してみたのですが以下の様なエラーが出て動作しません。 Win XP 2台、Win Vista 1台で試しましたが同じ結果となりました。 http://www.artonx.org/data/asr/ から Ruby-1.9.3-p125.msiをインストールして、%ruby_install_dir%\binにパスを通してrubyを使用しておりますが、CScript(或いはWScript)からrubyを動作させるには他に何か設定が必要なのでしょうか? お解りになる方がいらっしゃいましたらご回答をお願い致します。 コマンドプロンプトから実行しています。 D:\ruby>ruby -v ruby 1.9.3p125 (2012-02-16) [i386-mswin32_100] D:\ruby>ruby hello.rb ←これは普通に動作します。 D:\ruby>cscript hello.rb Microsoft (R) Windows Script Host Version 5.7 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 入力エラー: ファイル拡張子 ".rb" を持つスクリプト エンジンはありません。 D:\ruby>wscript test.rb ←同じエラーのメッセージウィンドウが出ます。
- MacでRailsアプリを開発する際のエディタ
MacでRuby on Railsのソフトを開発するのに向いているエディタを探しています。 現在はAptanaを使っているのですが、もう少し単語の補完機能が充実している物はありますでしょうか?
- ベストアンサー
- Ruby
- Shinya_131
- 回答数2
- Ruby と Ruby on Rails
Ruby と Ruby on Railsは何が違うんでしょうか? 漠然とした質問ですいません。
- ベストアンサー
- Ruby
- noname#208914
- 回答数1
- Rubyを独学で勉強しています
習得すればこのRuby言語を使ってどういうことができますか? ネットワークプログラミングってなんですか?
- ベストアンサー
- Ruby
- noname#208914
- 回答数1
- ruby 配列の中の文字列を全部数値にしたい
array=%w(1 2 3 4) のような文字列の配列があるとします。 これを数値の配列にしたいです。 以下の様にしてみました。 array=array.inject([]){|a,v| a<< v.to_i } これでも出来ましたが、もっとrubyらしい方法ってあったら教えて下さい。