私は Rails を始めたばかりで、私が読んでいるガイドでは当たり前のように思われるいくつかの構文要素を理解するのに苦労しています。
今日の午後、私は小さなサンプル プロジェクトに取り組んでいて、いくつかのコードをリファクタリングしようとしていました。基本的に、現在表示されているページに依存する管理者専用コントロールへのリンクをナビゲーション バーに含めたいと考えています。これは私の元のコードでした:
class RoomsController < ApplicationController
before_filter :admin_controlls
def new
end
def create
end
def edit
end
def update
end
def index
end
def destroy
end
private
def admin_controlls
@adminControlls = "rooms"
end
end
私の考えでは、このコードは、管理コントロールを作成するすべてのコントローラーで本質的に同じになると考えていました。唯一の違いは、ビューに渡したいフラグ変数 @adminControlls の値です。
だから、私はこれを試みました:
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
def admin_controlls(page)
@adminControlls = page
end
end
そして、Rooms コントローラーを次のように変更しました。
class RoomsController < ApplicationController
before_filter admin_controlls "rooms"
def new
end
def create
end
def edit
end
def update
end
def index
end
def destroy
end
end
私の混乱は before_filter から始まり、そこでメソッドを呼び出すにはなぜシンボルが必要なのかと思います。メソッドがシンボルとして呼び出されたときに文字列をメソッドに渡す方法がわかりません。メソッドを呼び出す前にフィルターを変更するすべての努力 (上記のように) は失敗しました。全体として、構文の微妙な点を把握しているようには感じていません。誰かが役に立つリソースを持っているなら、私はそれを感謝します.