LAPISLAZULI HILL#Ruby このページをアンテナに追加 RSSフィード

|

2007-10-25

[]例外 16:45 例外 - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - 例外 - LAPISLAZULI HILL#Ruby 例外 - LAPISLAZULI HILL#Ruby のブックマークコメント

rescue.レスキュー

  • 修飾子 直前の式で例外が発生時にキャッチ
  • begin begin節で例外発生時にキャッチ
  • def メソッドで例外発生時にキャッチ

begin

do_something

rescue

recover

ensure

must_to_do

end

no title

rescue
  • rescue節は複数指定可能
  • 引数に例外クラスを指定すると,その例外クラスとサブクラスだけを補足
  • 引数なしだとStandardErrorが指定されたことになる
  • 発生した例外は $! を使って参照することができます。また、指定されていれば変数 evar にも $! と同様に発生した例外が格納されます。
    • rescue HogeError => err
      • これでerrに格納,これを使わない場合は$!に格納される
    • rescue => err

raise

  • 例外を投げるのはraise

[]メソッドの種類 14:18 メソッドの種類 - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - メソッドの種類 - LAPISLAZULI HILL#Ruby メソッドの種類 - LAPISLAZULI HILL#Ruby のブックマークコメント

もっとkwsk

Action

呼び出し制限

メソッドは public、private、protected の三通りの呼び出し制限を持ちます。

  • public に設定されたメソッドは制限なしに呼び出せます。
  • private に設定されたメソッドは関数形式でしか呼び出せません。
  • protected に設定されたメソッドは、そのメソッドを持つオブジェクト のメソッド定義式内でなければ呼び出せません。

no title

理解力不足でちゃんと理解できない

protected

おそらく JavaC++ の protected と同じイメージで使ったのだと思いますが、 Ruby の protected は Java, C++ とは意味が違います。 Ruby の protected を使うと、サブクラスインスタンスが「オブジェクトの外から」メソッドを呼べるようになります。つまり、次のような状況です。

Rubyist Magazine - あなたの Ruby コードを添削します 【第 3 回】 dbf.rb

railsではprotectedはどういうときに使うんだろう.使っているソースを見つけたら必要かどうか確認してみよう

ひとまずこう書くことにする.必要があれば修正する

class HogeController < ApplicationController

public
  # actionはここに書く
  def page1
  def page2

private
  # 共通化や構造化で必要なメソッドはここに書く
  def method1
  def method2

[]renderメソッド 16:11 renderメソッド - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - renderメソッド - LAPISLAZULI HILL#Ruby renderメソッド - LAPISLAZULI HILL#Ruby のブックマークコメント

高度な描画動作(らしい)

視点を変えて取り扱ってみる

  • ビューファイルの明示的指定(:action)
  • 部分テンプレート(:partial)
  • 文字列を直接指定(:text)
    • 面倒なときや簡単なメッセージや完全に動的なメッセージを出力するときに使う
  • 指定文字列をビューのソースとしてみなす(:inline)
def page
  render :inline=>"<%= debug(session) %>"
end

この場合sessionデータを表示する.デバグに使える

2007-10-24

[]ERb 16:14 ERb - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - ERb - LAPISLAZULI HILL#Ruby ERb - LAPISLAZULI HILL#Ruby のブックマークコメント

  • .rhtml
  • <% ... %>
    • <%= 表示
    • <%- 行頭空白非表示
    • <%# コメント
    • -%> 改行抑止
  • rhtmlの場所
    • app/views/<:controller>/<:action>.rhtml
  • h メソッド→エスケープ
    • <%=h "hoge" %>
    • 文を与える場合はメソッドの括弧を省略しない

[]railsの機能分担 16:14 railsの機能分担 - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - railsの機能分担 - LAPISLAZULI HILL#Ruby railsの機能分担 - LAPISLAZULI HILL#Ruby のブックマークコメント

2007-10-23

[]Ruby on Railsでのモデルとロジックの分離 11:53 Ruby on Railsでのモデルとロジックの分離 - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - Ruby on Railsでのモデルとロジックの分離 - LAPISLAZULI HILL#Ruby Ruby on Railsでのモデルとロジックの分離 - LAPISLAZULI HILL#Ruby のブックマークコメント

モデルとロジックの密結合っぷりは自分でやって懲りているのだが,railsでもそのあたりの議論はされているであろう.何かいい書き方があるのか?あえてそこは捨てられている?

まだrailsを走ることはできていないので,一通り学んで分からなかったら調べる,分かったら書く

2007-10-22

[]irb文字コード 12:04 irbの文字コード - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - irbの文字コード - LAPISLAZULI HILL#Ruby irbの文字コード - LAPISLAZULI HILL#Ruby のブックマークコメント

.irbrcがよさそうだけどとりあえずalias

alias irb='irb -Ku' #utf
#alias irb='irb -Ke' #euc

[]ActiveRecord 11:19 ActiveRecord - LAPISLAZULI HILL#Ruby を含むブックマーク はてなブックマーク - ActiveRecord - LAPISLAZULI HILL#Ruby ActiveRecord - LAPISLAZULI HILL#Ruby のブックマークコメント

ARクラス

  • tabel
CREATE TABLE `syslogs` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`priority` INT( 3 ) NULL ,
`message` VARCHAR( 255 ) NOT NULL
) ENGINE = innodb;
  • コネクションの設定
 ActiveRecord::Base.establish_connection(
   :adapter  => 'mysql',
   :host     => 'localhost',
   :username => 'rails',
   :password => '',
   :database => 'rubima',
   :socket=>"/var/lib/mysql/mysql.sock"
 )
class Syslog < ActiveRecord::Base
end

テーブルの命名ルール

> "Memo".underscore.pluralize # memos

|
カウンター
43645