簡體   English   中英

為同一模型自定義Devise郵件模板路徑

[英]Customize Devise mail template path for the same model

我正在開發包括鐵路引擎在內的鐵路應用。 我使用devise gem進行帳戶身份驗證。 一方面,我想發送帶有一個main_app模板的confirmation_instruction郵件。 另一方面,我想發送帶有另一個Rails引擎模板的Confirmation_instruction郵件。 這兩個視圖使用相同的模型“帳戶”。 任何想法請幫忙!

根據需要添加新的布局,稱為“ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM