カテゴリー : 2013年 2月

[Ruby on Rails] Action Mailer でのメール送信処理

Ruby on Rails の Action Mailer でのメール送信処理をする方法をメモ。

主にこのへんを読む。

Action Mailer Basics — Ruby on Rails Guides

Rails 3 の Action Mailerまとめ – おもしろWEBサービス開発日記

ActionMailer Railsアプリからメールを送信 – 酒と泪とRubyとRailsと

Action Mailer

Gmail で送信する設定方法

config/environments/production.rb に下記のような感じで設定する。

MyApp::Application.configure do
  # Mailer
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
 
  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: 'example.com',
    user_name: "gmail_user",
    password: "gmail_pass",
    authentication: 'plain',
    enable_starttls_auto: true,
  }
end

[参考]

Rails 3.0 でメールの送信に Gmail を使う – LazyLoadLife

railsでgmailをメールクライアントとして設定する | simpleplay's Log

[Ruby on Rails] ActionMailer views で helper メソッドを使う方法

Ruby on Rails の ActionMailer views で helper メソッドを使う方法をメモ。

例えば、app/views/contact_mailer/inquiry.text.haml で ApplicationHelper に定義したメソッドを使いたい場合は、下記のように add_template_helper メソッドを使います。

class ContactMailer < ActionMailer::Base
  add_template_helper(ApplicationHelper)
 
  def inquiry(contact)
  end
end

[参考]:ruby on rails – How to use my view helpers in my ActionMailer views? – Stack Overflow

[Mongoose] Schema.Types.Mixed だと save 前に .markModified が必要

Node.js + Mongoose でインスタンスを save で保存できないときの原因のひとつに Schema.Types.Mixed があります。

プロパティの型が Schema.Types.Mixed とかだと、値に変更があったことを Mongoose が自動検知してくれないみたいです。

To “tell” Mongoose that the value of a Mixed type has changed, call
the .markModified(path) method of the document passing the path to the
Mixed type you just changed.

[引用元]:Mongoose SchemaTypes v3.5.6

markModified メソッドの使い方は下記のような感じです。

var schema = new Schema({
  mixed:   Schema.Types.Mixed
})
 
// example use
 
var Thing = mongoose.model('Thing', schema);
 
var m = new Thing;
m.mixed = {[ any: { thing: 'i want' } ]};
m.markModified('mixed');
m.save(callback);

[Chrome] 殺伐としたGithubに絵文字を追加するための拡張機能「Emoty」

殺伐としたGithubに絵文字を追加するための Chrome拡張機能「Emoty」がステキです。

Chrome ウェブストア – Emoty

絵文字のベースは「Emoji cheat sheet for Campfire and GitHub」みたいです。

[Ruby on Rails] RSpec でのファイルアップロードの方法

Ruby on Rails + RSpec でのファイルアップロードするためのメソッドをメモ。

fixture_file_upload
Rack::Test::UploadedFile.new
ActionController::TestUploadedFile.new
ActionDispatch::Http::UploadedFile.new

[参考]:ruby – How do I test a file upload in rails? – Stack Overflow はてなブックマーク - ruby - How do I test a file upload in rails? - Stack Overflow