我正在开发一种包括轨道发动机的铁路应用。我使用devise gem进行帐户身份验证。一方面,我想发送一封带有一个main_app模板的confirmation_instruction邮件。另一方面,我想使用另一个rails engine模板发送confirmation_instruction邮件。两个视图都使用相同的模型“帐户”。任何想法请帮助!
答案 0 :(得分: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