我想在索引页面上放置一个电子邮件表单来收集访问者的电子邮件,并在提交后将他/她引导到 Devise 生成的用户注册页面。我的表单只有一个字段,如下所示:
<%= form_tag(:action => 'enrolling') do %>
<%= text_field_tag "email" %>
<%= submit_tag %>
<% end %>
在控制器中,注册方法如下所示:
def enrolling
@email_for_enrolling = params[:email]
respond_to do |format|
format.html { redirect_to new_registration_path( {:user => {:email => @email_for_enrolling}})}
end
当我尝试表单时,该操作被调用(正常),但我收到错误消息:
Could not find a valid mapping for {:user=>{:email=>"####@#####.com"}}
我想在注册视图文件夹中加载新页面,并为用户预填充电子邮件。请问什么是正确的方法?
回答1
其实很简单:
format.html { redirect_to new_user_registration_path(email: @email_for_enrolling)}