Ruby/Rails

Ruby InstallerでWindowsにRubyを入れるとirbでエラーが起こる件

環境変数HOMEを削除したら解決した。削除したことによる不都合は今のところないみたい。

ボタンによって処理を切り替える

submit_tagの場合 view <% form_tag -%> <%= submit_tag("Search", :name => "search") %> <%= submit_tag("Delete", :name => "delete") %> <% end -%> controller if params[:search] // ... elsif params[:delete] // ... end image_submit_tagの場合 vie…

select_datetimeからの日付検索

日付を入力するフォームを簡単に作成できるselect_date/select_datetimeというヘルパーを使って日付検索を実装しました。まだ不完全なところがありそうですが。一応、記録しておきます。 期間で検索するには、select_datetimeを2回使います。なので、パラメ…

選択されたチェックを画面遷移後も維持する

チェックボックスやラジオボタンで選択したものを画面遷移後もチェックしたままにしておきたい、ってことあるじゃないですか。けっこうそういうシーンは多いので、メモ。 <% @something_cool.each do |something| -%> <%= radio_button_tag "cool", "#{somet…

MechanizeでMixiボイスに投稿する

RubyとMechanizeを使ってMixiボイスに投稿するプログラムを書きました。Mixiボイスに投稿するのはこれが初めてでしたw このプログラムを実行するにはmechanizeをインストールする必要があります。 $ gem install mechanize で、プログラムはこんな感じ。 re…

プラグイン読み込みの設定

includeだけではプラグインを読み込めないことが発覚した。 module hogehoge # ... end class FugafugaController < ApplicationController include hogehoge #=> "uninitialized constant ..."というエラー end environment.rbに以下のように記述することが…

わかりやすかったテキスト(Rails, jQuery編)

初心者の拙者にとっては、理論的な話より、ハウトゥが具体的に書かれているものの方が役に立ちました。その結果、以下のような逆引きリファレンス的なテキストを重宝してます。(一方で、オライリーの本がホコリをカブってる…)Ruby on Rails 逆引きクイック…

form_tagでパラメータをつけて現在のページに遷移する

第一引数を省略すると、現在のページに遷移する。 form_tag({}, {:method => :get}) do

Instant Railsのrubyコンソールでgitを使う

0.環境 Windows XP Instant Rails 2.0(C:\InstantRails-2.0-win) 1.msysgitをインストール インストールのときに「Adjusting your PATH environment」で2番目の「Run Git from the Windows Command Prompt」を選択。ここでは標準どおり「C:\Program Files…

Grepコマンドもどき ver.2(完成版)

Twitterでアドバイスを募ったところ、解決策が見つかったので、さっそく記録します。完成版のコードはこちら。 require 'find' def grep(pattern, directory) Find.find(directory) do |path| if FileTest.file?(path) file = open(path) path = File.expand…

Grepコマンドもどき ver.1

Railsで「この変数はどこで定義されているんだ?」と困ったときに、ディレクトリ以下のファイルすべてでパターンマッチをしたいです。なので、Grepコマンドもどきを作ってみました。 require 'find' def grep(pattern, directory) Find.find(directory) do |…

変数の区別

ローカル変数 小文字または「_」で始まる。 宣言された変数スコープのみアクセスできる。変数スコープとは、ファイル内、クラス定義、モジュール定義、メソッド定義、ブロック内のこと。例えば、以下のように入れ子になっても、3つのvarは異なる値を持つ。 v…

VimによるRails開発環境の構築 ver.2

ver.1で失敗した方法とは別の方法で再挑戦したところ、成功したっぽいです。ただ、ところどころ不安な点は残っています。環境 Windows XP 導入したい開発環境 Vim 7.2-20100510 for Windows rails.vim project.vim 成功したっぽい手順 こちらの記事どおりに…

VimによるRails開発環境の構築 ver.1

これから本格的に開発を進めていくため、そろそろ開発環境を整えていこうと思っている。だが、いろいろ見ながらやっても、ぜんぜんうまくいかない。環境 Windows XP 導入したい開発環境 Vim 7.2-20100510 for Windows rails.vim project.vim トライして失敗…

Merge Sort ver.1

ARGVでコマンドラインから引数を渡そうと思ったけど、flozenでslice!できませんよとエラーが出てきた。dupしても、なんかおかしなことになる。それが気になる。 def m_sort(array) if array.size == 1 array else array1 = m_sort(array.slice!(0, array.siz…

WIN32OLEを使ったExcelの操作(1)

Excelの単調な作業をプログラミングを用いて一掃できたら、どんなに快適なことか。何時間も何日も、AからBへデータを入力しなおす作業をやらされてきた身としては、喉から手が出るほど欲しい技術なのです。現在勉強しているRubyを使って、Excelの操作方法を…

ハノイの塔 ver.2

円盤がN枚のときのハノイの塔を完全に攻略することができました。前回のものを再帰的手法を用いて洗練させました。 @towersは3つの塔を配列として表現したもの(@towers[0]が左、@towers[1]が真ん中、@towers[2]が右の塔)、timesは円盤を移動させた回数、n…

ハノイの塔 ver.1

ハノイの塔を解くプログラムを作りました。かなり時間がかかりました。ずっとひっかかっていたところは、論理演算の初歩的なところでした。でも、そこに気づけてよかったです。これで論理演算は基礎が固まったかな。 3つの塔に見立てた配列から数値を出した…

Fizzbuzz問題(Ruby) ver.1

有名なFizzbuzz問題をRubyで解いてみました。Fizzbuzz問題とは、「1から任意の数までの自然数を表示せよ。ただし、3で割り切れる数は「Fizz」、5で割り切れる数は「Buzz」、両方で割り切れる数は「FizzBuzz」と表示すること。」というものです。 今回はRuby…

ディレクトリ内のファイルの大きさを表示する

指定されたディレクトリ内のファイルの大きさ(バイト)とその合計を表示するメソッドを作りました。コマンドを入力した瞬間にドバっと答えを返してくれるのが気持ちいいです。 require 'find' def du(top) total_size = 0 Find.find(top) do |path| if File…

count_letters ver.2

Array#uniqで重複を削除した配列に対してArray#eachでループさせたところ、問題は無事解決されました。ただ、実行すると最後にこの配列が表示されるのが気になる。なんでだろう? def count_letters(str) ary = str.split(//) ary.uniq! ary.each do |letter…

count_letters ver.1

文字列に含まれる文字数を文字ごとにカウントするメソッドを作成中です。"Ruby is an object oriented programming language"を例に実行すると、'R': * 'u': ** 'b': ** (以下に続く)といった感じで表示されます。 下のコードはやりかけですが、目下の問題…