rails

2009年5月14日 (木)

undefined method use_transactional_fixtures=

仕事上の関係でrailsのversionを2.1から2.3で作りなおすことになった。
2.3用にgem install rspec rspec-railsで最新のrspecをinstallし、正しく
動作することを確認したのだが、逆にrails 2.1のrspecが
undefined method use_transactional_fixtures=
で動作しなくなってしまった。
rails 2.1にはrspec 1.1.8のバージョンが必要だからだ。

gem "rspec","= 1.1.8"

と指定してみたのだが、

can't activate rspec(= 1.1.8), already activated rspec-1.2.6

のエラーが出力される。

対応として下記の記述をRakefileの先頭と、spec/spec_helper.rbに記述することで
実行できるようになった。

gem "rspec","= 1.1.8"
$:.unshift File.expand_path(File.dirname(__FILE__) + "/vendor/plugins/rspec-rails/lib")
$:.unshift File.expand_path(File.dirname(__FILE__) + "/vendor/plugins/rspec-rails/bin")

| | コメント (0) | トラックバック (0)

2009年4月29日 (水)

windowsでselenium on railsがinvalid args ./C:/applicationのエラー

そもそもwindowsでrender :file=>フルパス指定が必ずエラーになってしまう。
rails2.3で導入されたfind_templateのバグっぽい。
:file指定による絶対パス指定なのに、./C:/といった感じに先頭に./をつけられてしまう。
仕方ないので一時的にパスの先頭がドライブ文字だった場合は./をつけないように
下記のように仮対応。自己責任でお願いします。

1.8/gems/actionpack-2.3.2/lib/action_view/template.rb
112行目 
@load_path, @filename = load_path, File.join(load_path, template_path)
        ↓
@load_path, @filename = load_path, template_path =~ /\A[a-zA-Z]:/ ? template_path : File.join(load_path, template_path)

追記 git hubの2.3.2のstableでは直っていました。 調子にのってticket発行したら、もう直っているよと言われ、 恥ずかしいです。 ticket を発行する前に

% cd <RAILS_ROOT>/vendor
% git clone git://github.com/rails/rails.git
をしろってことですね。

| | コメント (0) | トラックバック (0)

2009年4月25日 (土)

LIBMYSQL.dll が見つかりません

仕事でwindowsにRails2.3をインストールする手順書を作成。
Rails 2.3はruby 1.8.7が推奨のため、rubyやrubygemを単体で
インストールしていかないといけない。
MySQLのインストール関連で2回はまった。
まず一つ目はMySQL のバージョン5.1をインストールすると、
rake migrationの際にeachメソッドが見つからないというエラーになる。
設定ファイルを見ると、railsはMySQL5.1は未対応みたいなことが
書かれてあったため、一度アンインストールして、MySQL5.0を再度
インストール。
MySQL5.0では、rake db:create'でいきなりLIBMYSQL.dll が見つかりません
のエラー。
ネットで調べると、環境変数PATHにMySQLのbinへのパスが通っていないと起きる
そうだが、インストールの際にWindows OptionでPATHに追加する指定にチェックを
入れ、実際にPATHを見ると正しくセットされているのに…。

と思ったら、MySQLインストールしてから再起動していなかった。orz
そのため、追加されたPATHが認識されておらず、再起動により、無事
rake db:createができるようになった。

| | コメント (0) | トラックバック (0)

2008年2月 7日 (木)

Railsで簡易カレンダ

今、体重管理のためのWebアプリをRailsの勉強をかねて、作ろうとしている。
カレンダにその日の体重を表示できるようにしたいのだが、 Rails カレンダでgoogle先生に質問したが、よく解らない回答 だったので、自分で作ってみた。

無保証です。使用により不都合が起きても責任を取りません。

コントローラ側

def list_cal
    if params[:date]
      begin
        indicate = params[:date].split("-")
        session[:date] = Date.new(indicate[0].to_i,indicate[1].to_i,indicate[2].to_i)
      rescue
        flash[:notice] = "Invalid #{params[:date]}"
      end
    end
    unless session[:date]
      session[:date] = Date.today
    end
    @date = session[:date]
  end
end

list_cal.html.erb

<%= link_to('先月',:action=>'list_cal',:date=> @date.last_month) -%>
<span><%= @date.year %><%= @date.month%></span>
<%= link_to('来月',:action=>'list_cal',:date=>@date.next_month) -%>
<table>
  <thead>
    <tr>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
    <% cnt = 0 -%>
    <% @date.beginning_of_month.beginning_of_week.yesterday.upto
(@date.end_of_month.next_week(:monday).yesterday.yesterday) do |d| -%>
      <% if cnt != 0 && cnt % 7 == 0 -%>
      </tr>
      <tr>
      <% end -%>
      <td> <%=d.day-%> </td>
      <% cnt+=1 -%>
      <% end -%>
    </tr>
  </tbody>
</table>

現時点ではCSSまったくつけていないが、これから土、日の色を変えたり等を

行う予定。

さらに祝日もhttp://www.h3.dion.ne.jp/~sakatsu/holiday_logic4.htm#Ruby を利用させていただいて、表示できるようにする。

日付はリンクにして、その日の体重等を書き込む入力画面に遷移する予定。

今週の土曜日が解らなかったので、来週の月曜日の昨日、昨日にしているのが、 かなりダサい。

イメージ  2008年4月

30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3

| | コメント (0) | トラックバック (0)