ApplicationController
ユーザーの権限に応じて一意のビューをロードできるように、次のメソッドがあります。コントローラー内で呼び出すと正常に動作しますが、パーシャルを指定すると、レンダリングする代わりにパーシャルのソースが取得されます。
class ApplicationController < ActionController::Base
include ControllerAuthentication
private
def render(*args)
options = args.extract_options!
render_options = _normalize_render(*args)
location = logged_in? && current_user.is_admin? ? "admin" : "client"
options[:template] = "/#{location}/#{params[:controller]}/#{render_options[:action] || params[:action]}"
if options[:partial]
options[:partial] = "#{location}/#{params[:controller]}/#{options[:partial]}"
end
super(*(args << options))
end
helper_method :render
end
<%= render partial: "form" %>
ページにこのようなものを出力します。
["<form ...>...</form>"]
render メソッドのソースを読んでいますが、何が原因なのか特定できていません。パーシャルを正しくレンダリングするには、何を変更する必要がありますか。