権限チェック処理を外出し

先日、Actionからヘルパメソッドを呼ぶというのをやってみようとしたが、要は権限チェックのメソッドを使いたかったのでした。権限チェック処理はActionでもViewでも使うので、共通のモジュールとして切り出して、ApplicationControllerとApplicationHelperでincludeするように修正。
/controllers/app_authentication.rb

module AppAuthentication

  #管理者ならtrueを返す
  def admin?
    current_user.admin  #この記法は認証プラグインのもの
  end
・・・・


/contorllers/application.rb

class ApplicationController < ActionController::Base
  # restful_authentication(認証用)で追加
  include AuthenticatedSystem
  include AppAuthentication   # <------------------★
・・・・


Action内での権限チェック処理
/controller/comment_controller.rb

  def edit
    ActiveRecord::Base.transaction do
      comment = Comment.find(params[:comment][:id])
      # 権限チェック
      raise unless comment_editable?(comment)   # <------------------★
      # 更新実施
      comment.update_attributes!(params[:comment])
・・・・

View側での使用
/helpers/application_helper.rb

module ApplicationHelper
  # 権限チェックのモジュールをincludeする
  include AppAuthentication   # <------------------★
・・・・

/views/topic/show.html.erb

  <% @comments.each do |c| %>
    <div id="comment_area_<%=c.id%>">
      <%= h(c.user.name) %>
      <pre><%= h(c.body) %></pre>
    </div>
    <% if comment_editable?(c) %>   # <------------------
      <%= button_to_function("編集", "comment_area_change(#{c.id}, true)") %>
      <%= button_to '削除', {:controller => 'comment', :action => 'delete', :id => c.id, :topic_id => @topic.id},
                    :confirm => 'コメントを削除してよろしいですか?' %>
    <% end %>
・・・・