Ruby on rails 如何正确地将查询字符串中的参数重定向到?(轨道4)
我正在用rails 4构建一个联系人表单创建应用程序 用户可以创建联系人表单(在应用程序中称为Ruby on rails 如何正确地将查询字符串中的参数重定向到?(轨道4),ruby-on-rails,ruby,url-redirection,url-parameters,query-parameters,Ruby On Rails,Ruby,Url Redirection,Url Parameters,Query Parameters,我正在用rails 4构建一个联系人表单创建应用程序 用户可以创建联系人表单(在应用程序中称为Contactable),在提交时创建联系人,并将联系人重定向到用户指定的URL 我正试图通过重定向将联系人的电子邮件地址作为查询字符串传递 在我当前的设置中,电子邮件确实会在查询字符串中传递,但它会丢失“@”符号 如果提交的联系方式带有电子邮件示例,如john@website.com,查询字符串的生成方式如下所示 http://website.com/?email=johnwebsite.com 如
Contactable
),在提交时创建联系人
,并将联系人重定向到用户指定的URL
我正试图通过重定向将联系人的电子邮件地址作为查询字符串传递
在我当前的设置中,电子邮件确实会在查询字符串中传递,但它会丢失“@”符号
如果提交的联系方式带有电子邮件示例,如john@website.com,查询字符串的生成方式如下所示
http://website.com/?email=johnwebsite.com
如您所见,它丢失了“@”字符。我怎样才能保留那个@角色
在联系人控制器的create函数中,下面是我如何构建查询字符串
respond_to do |format|
if @contact.save
if @contactable.redirect_url.present?
format.html { redirect_to @contactable.redirect_url + '?email=' + @contact.email }
format.json { render :show, status: :created, location: @contact }
else
format.html { redirect_to :back, notice: @contactable.thanks_message }
format.json { render :show, status: :created, location: @contactable }
end
else
format.html { render :new }
format.json { render json: @contact.errors, status: :unprocessable_entity }
end
end
谢谢你的意见 不应通过字符串连接手动构建URL,因为某些字符需要在有效URL中编码。如果可能,请使用接受参数的url帮助器 我不知道这是否有效(取决于可联系的
的实现):
如果不可能,请确保自己进行有效编码:
"#{@contactable.redirect_url}?email=#{ERB::Util.url_encode(@contact.email)}"
请出示config/routes.rb
文件。先生,你真是个天才。谢谢
"#{@contactable.redirect_url}?email=#{ERB::Util.url_encode(@contact.email)}"