Home > Tags > Rails

Rails

よく使うRakeコマンド

テーブルを作成

# RAILS_ENV=??でどの環境にテーブルを作成するか指定する。デフォルトはdevelopment
rake db:migrate RAILS_ENV=production

fixtureをDBに登録する

挿入するデータはあらかじめfixtureファイルに記述しておく

# RAILS_ENV=??でどの環境にテーブルを作成するか指定する。デフォルトはdevelopment
# FIXTURESでデータを入れるテーブルを指定する
rake db:fixtures:load FIXTURES=table1,table2 RAILS_ENV=production

Dreamhostでメールサーバの設定(ActionMailer)

DreamhostでActionMailerを使うにはとりあえず以下の設定を設定ファイル(production.rbとか)に記述することで動きました。

config.action_mailer.smtp_settings = {
  :address => '127.0.0.1',
  :port => 25,
  :domain => 'ドメイン名(例:sample.com)',
  :authentication => :plain
}
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :sendmail
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default_charset = 'utf-8'

:sendmailを使っていますが:smtpでも動くようなことがDreamhostのWikiに書いてあるので、
そこら辺はまた調べて書きます。

Dreamhostでgemをインストールする

正確にはインストールするのではないが。。
{RAILS_ROOT}/vendorにgemの実体を格納して、environment.rbでそれを読み込む設定をすれば、Dreamhostでも自由にgemを使えるようになる。

例えば、「will_paginate-2.2.2」というgemをDreamhostで使用したい場合は、
{RAILS_ROOT}/vendorにwill_paginate-2.2.2/以下をごっそり格納し、そのままアップする。
(gemファイルは、C:\Ruby\lib\ruby\gems\1.8\gemsとかにある)

そして、environment.rbに以下を記述する。

Rails::Initializer.run do |config|
 # 省略
  config.load_paths += %W(#{RAILS_ROOT}/vendor/will_paginate-2.2.2/lib)
end

Railsのログをログローテーションをする

Railsのデフォルトの設定だと、ログは同じファイルに吐かれ続けます。
ログローテーションを行うには、設定ファイルにローテートの設定を記述する必要があります。

設定は、以下のいづれかに記述します。

  • RAILS_ROOT/config/environment.rb
  • RAILS_ROOT/config/environments/*.rb

development環境、production環境で個別に設定したい場合は、environments以下のそれぞれの設定ファイルに記述します。

記述内容は以下。

# RAILS_ROOT/config/environments/development.rbには以下を記述。
# 10MB毎に10ファイルをローテートする。
config.logger = Logger.new(config.log_path, 10, 10.megabytes)

# RAILS_ROOT/config/environments/production.rbには以下を記述。
# 日毎にローテートする。
config.logger = Logger.new(config.log_path, 'daily')

参考

Railsでrestful_authenticationプラグインを使用する

インストール

最新のプラグインはGithubにあるのでGithubからプラグインをインストール。
(プラグインのGitインストールを行うには、事前にGitをインストールしておく必要がある。Windowsならmsygitかな、あとGitコマンドのパスは通しておくこと)

ruby script/plugin install git://github.com/technoweenie/restful-authentication.git

設定

認証を行うモデルとコントローラを定義します。

ruby script/generate authenticated user sessions

マイグレーションファイルができてるのでとりあえずテーブルを作っておきます。

rake db:migrate

次に controllers/users_controller.rb、controllers/sessions_controllerにある以下の部分を削除し、

# Be sure to include AuthenticationSystem in Application Controller instead
include AuthenticatedSystem

controllers/application_controller.rbに移動します。

class ApplicationController < ActionController::Base
  include AuthenticatedSystem

  helper :all # include all helpers, all the time
  protect_from_forgery # See ActionController::RequestForgeryProtection for details

  # Scrub sensitive parameters from your log
  # filter_parameter_logging :password
end

使い方

認証を有効にする

認証を有効にするには認証したいコントローラにフィルターを設定する。

#コントローラの全てのメソッドに認証が必要になる。
before_filter :login_required

#特定のメソッドだけを除外(認証無しで利用可能)にしたい場合は以下のようにする。
before_filter :login_required, :except => [:index, :show]

アクセス

  • /users/new ・・・ユーザの作成
  • /sessions/new ・・・ログイン
  • /sessions/destroy ・・・ログアウト

ログイン情報の取得

ログイン情報を取得するには以下のようにする。

<% if logged_in? %>
  <%= current_user.login %>さんはログイン中です。
<% end %>

Home > Tags > Rails

Search
Feeds
Meta

Return to page top