2008年6月13日金曜日

[Rails2.0.2]時間経つのはやすぐる

とりあえず、メモ。

ModelではControllerのメソッド定義ができる。

user.rb =>
class User < ActiveRecord::Base
 # 認証
 def self.authenticate(loginid, pass)
  user = find_by_loginid(loginid)
  if user and user.hashed_password == hashed_password(pass, user.salt)
   user
  else
   nil
  end
 end
end

users_controller.rb =>
class UsersController < ApplicationController
 def authentication
  loginid = params[:loginid]
  password = params[:password]
  user = User.authenticate(loginid, password)
  if user
   session[:user] = user.id
   redirect_to contents_path
  else
   session[:user] = nil
   redirect_to '/'
  end
 end
end

みたいな感じ。即興で書いたから動くかどうか知らんけどw
次にHelperについて
すごい初歩的だけど
HelperはViewのメソッド定義ができる

user_messages_helper =>
module UserMessageHelper
 def link_to_destroy_user_message(user_message)
  if params[:condition] == 'delete' #ゴミ箱を表示
   link_to '削除', user_message_path(:id => user_message),
    :confirm => '削除します。よろしいですか?', :method => :delete
  else #ゴミ箱以外を表示しているなら
   link_to 'ゴミ箱へ', user_message_path(:id => user_message),
   :confirm => 'ゴミ箱へ移動します。よろしいですか?', :method => :delete
  end
 end
end

て感じ。
Viewでは
<%= link_to_destroy_user_message(user_message) %>

というメソッドを使えるようになる。
まぁ、あんまり使わなさそうだけど
とりあえず、メモ。w

0 件のコメント: