我在Rails 2.3.3上,我需要创建一个发送post请求的链接.

我有一个是这样的:

= link_to('Resend Email', 
  {:controller => 'account', :action => 'resend_confirm_email'}, 
  {:method => :post} )

这会在链接上产生适当的JavaScript行为:

<a href="/account/resend_confirm_email" 
  onclick="var f = document.createElement('form'); 
  f.style.display = 'none'; 
  this.parentNode.appendChild(f); 
  f.method = 'POST'; 
  f.action = this.href;
  var s = document.createElement('input'); 
  s.setAttribute('type', 'hidden'); 
  s.setAttribute('name', 'authenticity_token'); 
  s.setAttribute('value', 'EL9GYgLL6kdT/eIAzBritmB2OVZEXGRytPv3lcCdGhs=');
  f.appendChild(s);
  f.submit();
  return false;">Resend Email</a>'

我的控制器操作正在工作,并设置为不渲染:

respond_to do |format|
  format.all { render :nothing => true, :status => 200 }
end

但当我点击链接时,我的浏览器会下载一个名为"重新发送确认邮箱"的空文本文件

有什么好处?

推荐答案

UPDATE: This is an old answer for legacy Rails versions. For Rails 4+, see William Denniss' post below.

在我看来,响应的内容类型不正确,或者在浏览器中没有正确解释.仔细判断http头以查看响应的内容类型.

如果不是text/html,您可以try 手动设置内容类型,如下所示:

render :nothing => true, :status => 200, :content_type => 'text/html'

Ruby-on-rails相关问答推荐

Rails 7.1,登录到STDOUT和LOG/Production.log

为什么在使用 Ruby on Rails 时我的徽标没有出现在 Bootstrap 导航栏中?

删除 aws s3 (rails7) 上的日志(log)文件

计算总价(商品数量*商品价格)

BigDecimals 的总和最终成为整数 [Ruby on Rails]

如何在 Rails 中注释掉 ERB?

Rails 3 应用程序的 MySQL 集群 (NDB) 与 MySQL 复制 (InnoDB):优点/缺点?

骨干model.destroy()即使工作正常也会调用错误回调函数?

如何配置设计以使用自定义邮箱布局?

Rails 3 中图像路径的完整 url

对于 Visual Studio 用户来说,最好的 Ruby on Rails 环境是什么?

rails 4.0, rake db:sessions:create

使用 jQuery 在 Rails 中不显眼的动态表单字段

如何显示 RSpec 测试生成的 SQL 查询日志(log)?

Rails:如何在表单的必填字段上禁用星号?

如何强制 RSpec 测试失败?

Rails,Docker:主机不存在:默认

如何拆分长行的 Ruby

未捕获的 ReferenceError:未定义 ReactDOM

在 Rails 中 ActiveRecord 加入查询和 Select