0

レール エンジンを含むレール アプリケーションを開発しています。アカウント認証にはdevise gemを使用しています。一方で、main_app 用の 1 つのテンプレートで確認指示メールを送信したいと考えています。一方で、Rails エンジン用の別のテンプレートで確認指示メールを送信したい。どちらのビューも同じモデル「アカウント」を使用します。どんなアイデアでも助けてください!

4

1 に答える 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 に答える