在我当前的项目中,假设需要很多不同的UI。
离>将有两个客户,boogle和yumhoo,这两个客户想要完全不同的观点。
我做了这样的原型,
class HomeController < ApplicationController
after_action :render_ui
def index
end
def render_ui
render "#{self.controller_name}/#{ENV['CLIENT_UI']}/#{self.action_name}"
end
end
我的计划是动态生成视图文件的路径,
但这里有一个大问题,
众所周知,rails会自动运行,
render 'there own contoller and action name combination'
并抛出错误,
Render and/or redirect were called multiple times in this action
导轨中有skip the default automatic render feature
的方法吗?
答案 0 :(得分:2)
after_action
。如果要渲染特定文件,只需在操作本身中调用render即可。
class HomeController < ApplicationController
def index
render "#{self.controller_name}/#{ENV['CLIENT_UI']}/#{self.action_name}"
end
end
您可能还需要考虑使用Rails 4.1 template variants功能。