RubyonRailsでメールを送信するサンプルをもうちょっと詳しく

2009-05-29
このエントリーをはてなブックマークに追加

RubyOnRailsで日本語メールを送信するでActionMailerの使い方を簡単に説明しましたが、これだけだと自分の備忘録にすらなっていないので追記。

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :address => ‘SMTPサーバ’,
  :port => 25,
  :authentication => :login,
  :user_name => ‘アカウント’,
  :password => ‘パスワード’
}

上記をconfig/environment.rbに追記。

送信するときには「RubyOnRailsで日本語メールを送信する」の例であれば、コントローラ等から

Hoge.deliver_sendmail

とすればOK。「Hoge」はクラスですね。「deliver_」はお約束です。アンダースコアの後ろがメソッド名になります。~というメソッドに紐付くメールを送信しなさい、っていうイメージですかね。

RubyでHTTP経由でのXMLの受信と解析

2009-05-27
このエントリーをはてなブックマークに追加

まぁ簡単にいうとRSSリーダーみたいなことをしたいときに使います。相手がRSSじゃなくてもOKです。Web上のコンテンツを読み込みたいときに使います。ただ、今回のサンプルだとgetしかできないので、制限はあります。

require ‘open-uri’

open(“http://www.tt-house.com/atom.xml”){|f|
  data = f.read
  xmldoc = REXML::Document.new data
  xmldoc.elements.each(“feed/entry/title”){|element|
    p element.text
  }
}

文字コードのことは気にしてません。

これでハセテツラボRSSのタイトル一覧が取得できます。他のサービスとのマッシュアップ等にも使えますが、やっぱりデータのpostもできないと使い勝手は悪いですよね。

postをするサンプルは次回にしましょう。

RubyonRailsのform_tag備忘録

2009-05-22
このエントリーをはてなブックマークに追加

頻繁に使うくせに、いつまでたっても覚えられない。ついついコピペして使いまわしちゃうから「あれ、どうやって書くんだっけ」の繰り返しになってしまう。

これは、確認も含めて整理しておこう。

<% form_tag ({:controller => ‘コントローラ’, :action => ‘アクション’}, {:method => ‘post’, :multipart => true}) do %>
  <dl>
    <dt>入力してください。「テキストボックス」</dt>
    <dd><%= text_field_tag :hoge, nil, :style => ‘width:320px;’ %></dd>
    <dt>選択してください「ラジオボタン」</dt>
    <dd>
      <label><%= radio_button_tag :status, ‘0’, ‘checked’ %>非表示</label>&nbsp;|&nbsp;
      <label><%= radio_button_tag :status, ‘1’ %>表示</label>
    </dd>
    <dt>コメントしてください。「テキストエリア」</dt>
    <dd><%= text_area_tag :comment, nil, :style => ‘width:320px;height:120px;’ %></dd>
    <dt>ファイルをアップロードしてください「ファイル」</dt>
    <dd><%= file_field_tag :file_name %></dd>
  </dl>
<% end %>

methodはデフォルトでPOSTなので、特に指定する必要はありません。ファイルをアップロードしない場合は

<% form_tag :controller =>’コントローラ’, :action => ‘アクション’ do %>

でもOKです。text_field_tagの「:hoge」は要素名、「nil」は値。アクション側で受け取るときは

params[‘hoge’]

で受け取れます。

Railsであればform_forが猛烈に便利なのですが、すべてのフォームがモデルとイコールなわけではないので、やっぱりform_tagの出番も増えます。

設計が間違ってるのかなぁ。