我试图在Rails中创建一个特定于邀请URL的新注册页面,如下所示:
http://localhost:3000/users/sign_up?school=Elementary&principal=true
当用户邀请他们的校长注册时,我会喜欢不同的体验(隐藏常规注册页面中某些字段的新模板)。
我能够将参数传递到这样的形式:
<%= f.text_field :school, :value => params[:school] %>
但我无法在视图中获取逻辑,隐藏某些输入,具体取决于用户所来自的URL。基本上,我希望将 new.html.erb 分为 newprincipal.html.erb
答案 0 :(得分:0)
实现它的最简单方法是检查控制器中principal
param的值,并根据它呈现正确的模板,例如:
class RegistrationsController < Devise::RegistrationsController
def new
render :new_principal if params[:principal] == true
end
end
Ruby on Rails遵循convention over configuration范例,因此除非principal
param设置为true
(或不存在),否则将呈现默认的new
模板。您可以在the official Rails guide中阅读有关布局和渲染的更多信息。