レール エンジンを含むレール アプリケーションを開発しています。アカウント認証にはdevise gemを使用しています。一方で、main_app 用の 1 つのテンプレートで確認指示メールを送信したいと考えています。一方で、Rails エンジン用の別のテンプレートで確認指示メールを送信したい。どちらのビューも同じモデル「アカウント」を使用します。どんなアイデアでも助けてください!
1 に答える
0
「foo.html.erb」という名前の新しいレイアウトを好きなように追加します
メインコントローラーに以下を追加します。
layout "foo", :only => [ :index, :show ]
以下を使用して、特定のアクションのレイアウトを指定できます。
def new
render(:layout => "layouts/application")
end
コントローラー内の別のアクションに対して別のレイアウトを定義します。別のものを追加することかもしれません
layout "standard", :only => [ :new, :edit ]
うまくいくかもしれません...
また、この方法を試してください:-
class MyController < ApplicationController
def foo
@model = Bar.first
respond_to do |format|
format.html {render :layout => 'application'}
format.html.phone {render :layout => 'phone'}
format.html.tablet {render :layout => 'tablet'}
end
end
end
Rails 4.1では、最近インクルードされています:-
class ApplicationController < ActionController::Base
before_action :detect_device_variant
private
def detect_device_variant
case request.user_agent
when /iPad/i
request.variant = :tablet
when /iPhone/i
request.variant = :phone
end
end
end
class PostController < ApplicationController
def show
@post = Post.find(params[:id])
respond_to do |format|
format.json
format.html # /app/views/posts/show.html.erb
format.html.phone # /app/views/posts/show.html+phone.erb
format.html.tablet do
@show_edit_link = false
end
end
end
end
于 2013-12-27T10:51:55.663 に答える