2013年4月30日火曜日

Ruby on Railsのフォームタグ生成(form_for)

Ruby on Rails(3.2.13)フォームタグ生成(form_for)です。「:url=> '/profile'」と言った具合に、URLを指定することが可能。更に「:html => { :class => "new_post", :id => "new_post" }」と、クラスやIDも指定出来ます。何でも思い通りに出来て良いのですが、これをデザイナーさんにメンテナンスをお願いするには、ちょっと気が引けます。

<%= form_for(@user) do |f| %>
↓
<%= form_for(@user, :url => '/profile') do |f| %>

2013年4月29日月曜日

Ubuntu 13.04(デスクトップ版)をインストール

Ubuntu 13.04をインストールしてみました。今回試したのはデスクトップ版です。利用したisoファイル(ubuntu-13.04-desktop-i386.iso)はこちら。「グラフィックのパフォーマンスが改善しているところが最大のポイント」と紹介されていましたが、言われないと、わからないような変化のような気がします。ただ、安定感はさすが。なんだかんだ言われながらも、この分野の牽引役的存在であることは間違いありません。

2013年4月28日日曜日

360度写真を共有できるサービス「sphereshare.net」

360度写真を共有できるサービス「sphereshare.net」 これぞ、スマホ時代のハイテクサービスといえる代物です。Googleのストリートビューを個人レベルでも楽しみたい? そんなニーズにマッチしているのかもしれません。臨場感は桁違いです。旅の記念に残しておくにも良いかもしれません。

2013年4月27日土曜日

jQueryのスライドショー・プラグイン「SlidesJS」

jQueryのスライドショー・プラグイン「SlidesJS」 設置が簡単で、シンプル。しかしながら設定項目は充実していて、思い通りの動作を実現出来ます。動作も軽快で、コンテンツにシャープでエレガントな印象をもたらしてくれるでしょう。

設定サンプル
$(function() {
  $('#slides').slidesjs({
    width: 940,
    height: 528,
    play: {
      active: true,
      auto: true,
      interval: 4000,
      swap: true,
      pauseOnHover: true,
      restartDelay: 2500
    }
  });
});
HTMLはこんな感じ。
<div id="slides">
  <img src="img/slide1.jpg">
  <img src="img/slide2.jpg">
  <img src="img/slide3.jpg">
  <img src="img/slide4.jpg">
</div>

2013年4月26日金曜日

Ruby on Railsのユーザー登録と認証再び

Ruby on Rails(3.2.13)ユーザー登録と認証再びです。あちこちで躓きましたが、ようやく意図する動きになるように設定できました。特に、attr_accessorの使い方がわからず、時間がかかってしまいました。まだ納得できたわけではないのですが、慣れるしかありません。それにしてもこのThe Rails Wayの記事のソースは、簡潔でエレガント。

実際に設定してみたサイトがこちら

2013年4月25日木曜日

Ruby on Railsの初期設定ファイル「initializers」

Ruby on Rails(3.2.13)の初期設定ファイル「initializers」の利用です。「/config/initializers/」フォルダ内のファイルは、アプリケーション起動時に読み込まれるらしい。ファイル名は何でも良いようです。

/config/initializers/constants.rb
SITE_NAME = '実験サイト、延々'
SITE_URL = 'http://talkativepg-rubyonrails.herokuapp.com/'


参考サイト
[Rails3] グローバルな定数を定義する(Rails3 事始めさん)

2013年4月24日水曜日

Ruby on Railsのアクティブレコード・コールバック(Active Record Callbacks)

Ruby on Rails(3.2.13)アクティブレコード、コールバック(Active Record Callbacks)です。下のサンプルでは、before_saveで、パスワードを保存する前にハッシュ値で暗号化するアクションを加えています。ただ、気をつけなければならないのは、データをsaveする前に、必ず呼ばれる点です。

/app/models/user.rb
before_save :encrypt_password

private

def encrypt_password
  require 'digest'
  self.password = Digest::SHA1.hexdigest(self.password)
end


参考サイト
What is the context of methods called by before_save in a Rails 3 model?(Stack Overflow)
before_saveの弊害(railsとかのどうでもよいメモさん)

2013年4月23日火曜日

Ruby on Railsの「attr_accessor」にハマる

Ruby on Rails(3.2.13)の「attr_accessor」にハマリました。結局、よく理解できていないんですが、ここで立ち止まると、更なる深みに落ち込むような気がしますので、ここは受け流して、また後でじっくり考えることにします。



参考サイト
rubyのattr_accessorについて(ささたつさん)
アクセスメソッド(Ruby入門さん)

2013年4月22日月曜日

Ruby on Railsで、コントローラーのメソッドをビューで利用する「helper_method」

Ruby on Rails(3.2.13)で、コントローラーのメソッドをビューで利用する「helper_method」です。ログイン判定する際など、便利に利用できます。

/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  helper_method :current_user

  def current_user
    @current_user ||= User.find(session[:user_id]) if session[:user_id]
  end
end
/app/views/layouts/application.html.erb
<% if current_user %>
  <%= current_user.name %>
<% end %>


参考サイト
Ruby/Ruby on Rails/コントローラーのメソッドをビューから呼び出す方法(TOBY SOFT wikiさん)

2013年4月21日日曜日

Chromeの拡張機能「Googleドライブに保存」

Chromeの拡張機能「Googleドライブに保存」 その名の通り、閲覧しているウェブページや画像をGoogleドライブに保存することができます。ウェブページは、丸ごと1ページ全てを保存してくれます。Evernoteのように利用することが出来て、非常に便利。

2013年4月20日土曜日

Ruby on Railsで、デバッグ(debug)

Ruby on Rails(3.2.13)で、デバッグ(debug)です。特に、ビューでのdebugは、見やすくて、ありがたい。

コントローラー
render :inline => "<%= debug @object %>"
ビュー
<%= debug @object %>


参考サイト
Debugging your Ruby on Rails App(jeremy hubertさん)

2013年4月19日金曜日

Ruby on Railsのredirect_toとflash notice

Ruby on Rails(3.2.13)redirect_toとflash noticeで、ちょっと躓いたのでメモです。1行にまとめて書くと、期待通りに動いてくれませんでした。2行に分けて書くことで、解決です。

×正しく動かない
format.html { redirect_to :action => "edit", :id => session[:user_id], notice: '変更されました。' }

format.html { redirect_to (:action => "edit", :id => session[:user_id]), notice: '変更されました。' }


○正しく動く
flash[:notice] = '変更されました。'
format.html { redirect_to :action => "edit", :id => session[:user_id] }


参考サイト
Ruby on Rails 3 redirect_toのnotice(み。のメモメモの記事さん)
Flash notice with redirect_to is broken in rails(Stack Overflow)
Rails3のflashの新記法ではまった(akr1155の日記さん)

2013年4月18日木曜日

Ruby on RailsのActionMailerでの改行

Ruby on Rails(3.2.13)ActionMailerでの改行です。テキストメールの場合は、notifier.rbで、format.textを指定しておくと良いようです。HTMLメールを送信する場合は、format.html

/app/mailers/notifier.rb
class Notifier < ActionMailer::Base
  def contactus(inquiry)
    @inquiry = inquiry
    mail(:to => @inquiry.email, :subject => "お問い合わせ") do |format|
      format.text
    end
  end
end
/app/views/notifier/inquiry.erb
下記の通り、お問い合わせを承りました。

<%= hbr(@inquiry.name) %>

<%= hbr(@inquiry.email) %>

<%= hbr(@inquiry.title) %>

<%= hbr(@inquiry.letter) %>
実際に設定してみたサイトがこちら



参考サイト
改行ありで入力した値をきちんと表示させる(Katawara.*)

2013年4月17日水曜日

Ruby on Railsで、404エラーページの表示

Ruby on Rails(3.2.13)で、404エラーページの表示です。find()メソッドだと、データが見つからない場合、ActiveRecord::RecordNotFoundのエラーが表示されてしまうので、find_by_id()を利用して、404エラーページをレンダリング処理すれば良いらしい。

/app/controllers/users_controller.rb
def show
  @user = User.find_by_id(params[:id])

  unless @user then
    render_404
  else
    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @user }
    end
  end
end
実際に設定してみたサイトがこちら

参考サイト
Rails3の全体的な例外ハンドル(Tiempoさん)
findよりfind_by_idでActiveRecord::RecordNotFoundを回避する(パンプキンスパイスラテさん)

2013年4月16日火曜日

Ruby on Railsで、バリデーションエラーを個別に取得

Ruby on Rails(3.2.13)で、バリデーションエラーを個別に取得してみました。@(オブジェクト).errors[:name]で取得出来ます。凝ったデザインを実現する場合、面倒ではありますが、この方法で対処できそうです。

/app/views/inquiries/_form.html.erb
<% if @inquiry.errors[:name].blank? %>
  # エラー無しの場合

<% else %>
  # エラーの場合

<% end %>
実際に設定してみたサイトがこちら

2013年4月15日月曜日

Ruby on RailsでGmailをSMTPサーバーとしてメール送信

Ruby on Rails(3.2.13)GmailをSMTPサーバーとしてメール送信です。environment.rbに設定を書き込みました。非常に便利。

/config/environment.rb
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
  :enable_starttls_auto => true,
  :address => 'smtp.gmail.com',
  :port => 587,
  :domain => 'gmail.com',
  :authentication => :plain,
  :user_name => 'yourname@gmail.com',
  :password => 'password'
}


参考サイト
Action Mailer Configuration for GMail
Redmine (Ruby on Rails) で Gmail を使う(TACの雑記さん)

2013年4月14日日曜日

パスワードクラックにかかる時間を表示してくれる「How Secure Is My Password?」

パスワードクラックにかかる時間を表示してくれる「How Secure Is My Password?」 パスワードを入力すると、クラックされるまでの具体的な時間を表示してくれます。安全なものは、バックグラウンドが緑に、危険なものはバックグラウンドが赤に変わり警告してくれます。

2013年4月13日土曜日

Ruby on Railsで「Action Mailer」によるメール送信

Ruby on Rails(3.2.13)で「Action Mailer」によるメール送信です。ActionMailerを利用したメール送信モデルを作成して、それを利用してメール送信するようになるらしい。きちんと理解できるまでは、ちょっと時間がかかりそうです。

# 実際にメール送信するコントローラー
/app/controllers/users_controller.rb
Notifier.welcome(recipient).deliver
# メール送信モデル
/app/mailers/notifier.rb
class Notifier < ActionMailer::Base
  default :from => 'from@sampledomain.com'

  def welcome(recipient)
    @account = recipient
    mail(:to => recipient.email)
  end
end
# メールの文章をviewで指定
/app/views/notifier/welcome.erb
<%= @account.name %>さん、こんにちは。


参考サイト
ActionMailer::Base

2013年4月12日金曜日

Ruby on Rails で、ログイン

Ruby on Rails(3.2.13)で、ログインです。RailsCastsのサンプルを参考に設定してみました。ソースコードが公開されていますので、非常に参考になります。パスワードもBCryptで暗号化されていますし、良い感じで動いてくれています。

実際に設定してみたサイトがこちら

2013年4月11日木曜日

Ruby on Railsで、ユーザー登録

Ruby on Rails(3.2.13)で、ユーザー登録です。RailsCastsのサンプルを参考に設定してみました。「Click to Play Video」をクリックすると、解説動画が閲覧出来ます。これが秀逸。簡潔で、わかりやすい。簡単にできそうな錯覚に陥ります(笑)。ユーザー登録以外にも、RailsCastsには、参考になるサンプルが数多く紹介されています。

実際に設定してみたサイトがこちら

2013年4月10日水曜日

Ruby on Railsで、バリデーションの日本語化

Ruby on Rails(3.2.13)で、バリデーションの日本語化を設定してみました。i18n_generatorsを利用すると、簡単に実現できるようです。日本語のバリデーションメッセージを自動生成してくれるとは、ちょっと感激。これなら、カスタマイズも容易にできるでしょう。

rails g i18n_locale ja

# 一般的な翻訳
/config/locales/ja.yml
# activerecord のデータ項目の翻訳
/config/locales/translation_ja.yml
実際に設定してみたサイトがこちら



参考サイト
Rails 3.2 i18n_generators メモ(Qiita)
日本語化(Railsさん)

2013年4月9日火曜日

Ruby on Railsで、バリデーション

Ruby on Rails(3.2.13)で、バリデーションを設定してみました。ドキュメントを真似て設定すれば、基本的なチェックは出来そうです。ただ、慣れるには時間がかかりそうな予感が。エラーメッセージが英語になってしまいますが、これは後ほど対処することにします。

実際に設定してみたサイトがこちら

2013年4月8日月曜日

Ruby on RailsのYouTubeチュートリアルビデオ

Ruby on RailsのYouTubeチュートリアルビデオを参考に、また亀の歩みで進めていこうと思います。何も進んでいませんが、ビデオを聞き流しただけで、消化不良で力尽きました(笑)。



















2013年4月7日日曜日

無料で10GBのオンラインストレージ「MediaFire」

無料で10GBのオンラインストレージ「MediaFire」を利用してみました。ファイル形式に応じて、見やすいサムネイル表示してくれるので、管理が楽です。もちろん、ウェブ上から、アップロード、ダウンロードが可能。1ファイルのサイズ制限もないようですし、便利に利用できます。ありがたい。

2013年4月6日土曜日

Ruby on RailsのUnobtrusive JavaScriptを利用したdelete

Ruby on Rails(3.2.13)のUnobtrusive JavaScriptを利用したdeleteに、再び感動です。HTML5のdata属性を利用して、普通のリンクっをPOSTしたように(?)模擬的に動かしている模様。全てのことが新鮮で、勉強になります。



実際に設定してみたサイトがこちら

参考サイト
link_toメソッドを使ったリンクの作成(Ruby on Rails入門さん)
Unobtrusive JavaScript in Rails 3(Simone Carletti's Blogさん)
link_to に :method =&gt; :delete を指定した時の動作(happy lie, happy lifeさん)

2013年4月5日金曜日

herokuで、Ruby on Rails+MySQLの文字化け

herokuで、Ruby on Rails(3.2.13)+MySQLの文字化けに悩まされていたのですが、何とか対処出来ました。mysqlの接続ドライバーをmysqlから、mysql2に変更すれば良いようです。ちなみにDBは、cleardbを利用しています。

mysql://userid:password@cleardb.com/heroku_dbname?reconnect=true
↓
mysql2://userid:password@cleardb.com/heroku_dbname?reconnect=true
heroku config:add DATABASE_URL=mysql2://userid:password@cleardb.com/heroku_dbname?reconnect=true
実際に設定してみたサイトがこちら



参考サイト
heroku h10エラー mysql利用 解決(YOMiTOKUさん)

2013年4月4日木曜日

Ruby on RailsのScaffold

Ruby on Rails(3.2.13)Scaffoldを試してみました。感動であります。目からうろことは、まさにこの事。本当によくできています。慣れない環境で苦労が多いのですが、一気に興味が湧いて来ました。人気の理由が、分かって来たかもしれません。

実際に設定してみたサイトがこちら





参考サイト
Scaffoldを使ったアプリケーション雛形の作成(Ruby on Rails入門さん)

2013年4月3日水曜日

Ruby on Railsで、「Hello world」

Ruby on Rails(3.2.13)で、「Hello world」です。herokuのログを確認したら、mysql関連のエラーが出ていたので、Gemfileにmysqlを追加して、ついでに、ruby2.0を指定しました。一時はどうなるかと思いましたが、何とかここまで辿りつけました。慣れるまでは、険しい道程になりそうです。

Please install the mysql adapter: gem install activerecord-mysql-adapter (mysql is not part of the bundle. Add it to Gemfile.)
Gemfile
ruby "2.0.0"
gem 'mysql2'
gem 'mysql'
設定してみたサイトがこちら

2013年4月2日火曜日

Ruby on Rails 早くも挫折

Ruby on Rails(3.2.13) 早くも挫折です。完全に行き詰まりました。ローカル環境だと問題ないのですが、herokuにデプロイすると、ActiveRecord::ConnectionNotEstablished とエラー表示されてしまいます。いろいろ設定を変えて試しましたが、原因不明で、お手上げ状態です。調子に乗って始めたけど、やめておけばよかったかも(笑)。

無残な状態の実際のサイトがこちら。笑ってやって下さい。

2013年4月1日月曜日

herokuにRuby on Railsを設定

herokuRuby on Rails(3.2.13)を設定してみました。エイプリルフールということで、ちょうどいい話題かなと思います。設定手順をまとめようと思ったのですが、あちこちで、エラーが出て、何だかよくわからなくなってしまいました。とりあえず、デプロイまでは、できたような気がします。というわけで、中身の薄い日記となりました。

実際に設定したサイトがこちら



参考サイト
CentOS 6.2 に RVM、Ruby、Ruby on Rails をインストール(あるSEのつぶやきさん)
Getting Started with Rails 3.x on Heroku