- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Ruby/Ruby on Rails

はじめに Edit

コントローラー内のメソッドをビュー内から呼びたい時があります。

例えば、ログインしているか?どうかのメソッド。
単発のヘルパーにもできないしなー、という場合。

helper_methodを使う方法 Edit

簡単そうな方法は、helper_method を使う方法です。

以下、Railsのドキュメントのhelper_methodの項目から抜粋(一部改変)。
helper_method にメソッドと同名のシンボルを渡しています。

※危なっかしいので、該当メソッドをprivateにしておきました

1
2
3
4
5
6
7
8
9
10
11
12
  class ApplicationController < ActionController::Base
    helper_method :current_user, :logged_in?

  private
    def current_user
      @current_user ||= User.find_by_id(session[:user])
    end

     def logged_in?
       current_user != nil
     end
  end

ビュー内では、ヘルパーみたいに使えます。

<% if logged_in? -%>Welcome, <%= current_user.name %><% end -%>

No comment. Comments/Ruby/Ruby on Rails/コントローラーのメソッドをビューから呼び出す方法?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2009-07-27 Mon 13:19:31 JST (3005d)