2013年3月10日日曜日

今日の葛城山

雨風が出る前の午前中に一葛城山に行ってきました。かなり暖かくなっていて、冬のジャージで登っているのは私ぐらいでした。
それにしても温度変化有りすぎます。先週の山頂の温度が1度。今日は17度。一週間で+16度。



これが先週の気温

これより下が今週

黄砂?花粉?曇っています




今週の気温17度



2013年2月24日日曜日

active support 便利関数 try

関連テーブルのフィールド情報を取りにいくとき、関連テーブルが無いとき例外が発生しますようね。

   Image.all{|image|
                 image.book.title
          }
関連するbookが無い場合例外が発生。今までは以下のようにしていました。

   Image.all{|image|
                 image.book.title if image.book.present?
          }
tryを使うと少ないコードですみます

   Image.all{|image|
                 image.book.try(:title)
          }
かなりいいです。感動!

param情報にもつかます。
paramのハッシュ:search の中の:locationNmaにアクセスするとき
params["search"]["locationName"] if params["search"].present?

tryを使うと
params["search"].try(:[],:locationName)

いい感じです。

今日の葛城山

今日はハイランドパークから上はアイスバーンでした。そして、いつものコンクリートの坂から頂上まではほぼ歩かないと進めないアイスバーンした。こんな状況にも関わり無く、自転車で山に登ってきている野郎は4名いました。山頂温度は少し暖かくなって0度でした。










2013年2月17日日曜日

JQuery1.9ではまる

jQuery.browser(),.live() .die()が1.9から廃止されたんですね。


"ローカルではエラーも無く動作するのに、サーバーではjQuery関係のエラーが発生"この問題を解決するのに半日ほどかかりました
なかなか原因がつかめなかった理由はローカルのjQueryは1.8系でサーバーを1.9を使ってしまった為です。最初はjQueryを含めたライブラリのインストールが正しく出来ていないかも?からはじまりました。
長く辛い時間でした。
サーバーは最近インストールしたので、何も考えなく当然のように1.9.1を入れていました。最終的に解決方法はサーバーのjQueryのバージョンを1.8の最終にしました。
理由は廃止された関数を使っている部分のコードを変更するのは危険と判断したためです。

2013年2月10日日曜日

Homebrew(macのパッケージ管理) rbenv(rubyのバージョン管理) railsのインストール

私も遂にMacportとrvmにさよならして、Homebrewとrbenvをインストールしました

基本的にはここを参照しました
Homebrewのインストール
1.Xcodeのインストール
2.XcodeのCommandLineToolsのインストール(Xcode Preferences Downloads ConnamdLineTools
3.Homebrewのインストール
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
4.MacPortsのアンインストール
sudo port -f uninstall installed
5.macportの設定を削除
sudo rm -rf /opt/local /Applications/DarwinPorts /Applications/Macports /Library/LaunchDaemons/org.macports.* /Library/Receipts/DarwinPorts*.pkg /Library/Receipts/MacPorts*.pkg Library/StartupItems/DarwinPortsStartup /Library/Tcl/darwinports1.0 /Library/Tcl/macports1.0 ~/.macports
6.環境変数の編集
削除
Macport関係の設定を削除
7.設定の再読み込み
 source ~/.profile
 source ~/.bash_profile
or
再ログイン
8.brew が正しくインストールされているかを確認
brew doctor
ここでのメッセージを元に悪いところを修正 rbenvのインストール
1.rvmが入っている場合は削除
rvm implode
2.rbenv とruby-buildのインストール
 brew install rbenv
 brew install ruby-build
 echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
 source ~/.bash_profile
3.readlineのインストール
brew install readline
brew link readline
4.opensslのインストール
brew install openssl
brew link openssl
5.rubyのインストール(CONFIGURE_OPTSを設定しないとインストール出来ない)
CONFIGURE_OPTS="--with-readline-dir=/usr/local --with-openssl-dir=/usr/local" rbenv install 1.9.3-p194
rbenv rehash
rbenv global 1.9.3-p194
6.バージョン確認(バージョンが出るか確認してください)
rbenv version
ruby -v
7.ruby on rails のインストール
rbenv exec gem install rails
rbenv rehash
source ~/.bash_profile

その他
発生した問題と解決策
問題:bundle install で Gem::RemoteFetcher::FetchError になる
  gem update --system
 問題:rbenvでインストールするとbundleが入っていない?
  gem install bundle でインストール
問題:ビルド時のエラー
  以下からgccパッケージをダウンロードしてインストール
https://github.com/kennethreitz/osx-gcc-installer/downloads
問題:brew doctorでパス変更の要求
  /etc/pathsを変更して対応

2013年2月9日土曜日

葛城山 −3度

今日も葛城山に登ってきました。ハイランドパークまでは全く雪は有りませんでしたが、ハイランドパークを過ぎたあたりからところどころにアイスバーン。コンクリートの激坂の始まり付近から本格的に凍っている。そこから山頂までは半分ほど歩きました。
コンクリートの坂付近
コンクリートの坂付近

山頂


山頂

山頂

山頂の温度−3度
二週間前は-3度、一週間前は9度、そして今日は-3度気温が戻りました。



2013年2月3日日曜日

rails3 複数ファイルのアップロード

ポイントはinput にmultiple属性の追加とinput のtype="file"でファイルを選択終了するとjavascriptで新しいinput type="file"を作るです。サンプルはこちら
新規作成中の画面
編集中の画面









ファイル選択ボタンを押す毎に新しいファイル選択ボタンの作成をしています
 
新規作成用
<%= form_for(@book,:html => {:multipart => true}) do |f| %>
  <% if @book.errors.any? %>
    

<%= pluralize(@book.errors.count, "error") %> prohibited this book from being saved:

    <% @book.errors.full_messages.each do |msg| %>
  • <%= msg %>
  • <% end %>
<% end %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= hidden_field_tag("imagenum",'',{:class => :imagenum}) %>
<%= f.submit %>
<% end %>
編集用
<%= form_for(@book,:html => {:multipart => true}) do |f| %>
    <% if @book.errors.any? %>
        

<%= pluralize(@book.errors.count, "error") %> prohibited this book from being saved:

    <% @book.errors.full_messages.each do |msg| %>
  • <%= msg %>
  • <% end %>
<% end %>
<%= f.label :title %>
<%= f.text_field :title %>
<% @book.images.each do |image| %> <%= check_box_tag "images[]",image.id,true %><%= image.filename %> <% end %> <%= hidden_field_tag("imagenum",'',{:class => :imagenum}) %>
<%= f.submit %>
<% end %>
これではわかりにくいと思うのでgithubにサンプルをアップしました localhost:3000/booksあたりからアクセスしてください