- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个链接以从文件系统下载文件。为此,我在“license_helper.rb”文件中定义了以下内容:
def license_download_link(license, link_text = nil)
if link_text.blank?
link_text = image_tag("download_icon.png", :border => 0, :width => 32, :height =>32, :alt => 'Download License', :title => 'Download License')
end
licenseFileId = license.asset.serial_number
send_file '#{licenseFileId}license.xml', :type => "application/xml", :filename => "#{licenseFileId}license.xml"
#send_file ' "#{licenseFileId}license.xml" ', :disposition => 'inline'
#send_file("#{licenseFileId}license.xml", :type => :xml)
#link_to link_text, '#{"C:\\Entitlement\\trunk\\entitlement_site\\entitlement\\25license.xml"}'
end
我的“ View ”只是调用这个辅助类:
<td><%= license_download_link(license, ' ') %></td>
当我尝试查看页面时,收到以下错误消息:
undefined method `send_file' for #<ActionView::Base:0x5fb3650>
如您所见,我尝试了多种调用“send_file”的方法,但总是得到相同的错误消息。任何帮助将非常感激,谢谢你的时间,问候,--- 阿杰
最佳答案
您需要从 Controller 操作而不是您的 View 调用 send_file
。调用 Controller 操作以响应用户单击指向它的链接。
在 View 中,您只需要一个指向 Controller 操作的链接。
细节将取决于您的具体应用,但这里是各部分如何组合在一起的粗略概述
生成一个 Controller :
class LicenceController < ApplicationController
def download
# look up the licence and then use send_file
end
end
然后您可以编辑 config/routes.rb
为许可证下载创建一个友好的 URL,例如
match 'licences/:id/download' => 'licence#download', :as => 'licence_download'
这意味着 licences/xyz/download
形式的 URL 将调用您的 download
Controller 方法,而 licence_download_url
辅助方法将自动为您创建。
然后在你看来你可以做
<%= link_to 'Download your licence', licence_download_url(licence) %>
如果您想创建一个辅助方法来生成带有下载图标的链接,您也可以这样做。
如果您是 Rails 的新手并且正在为如何将应用程序的各个部分组合在一起而苦苦挣扎,那么 Agile Web Development with Rails会是一本很好的书。
关于ruby-on-rails - #<ActionView::Base:0x5fb3650> 的未定义方法 `send_file',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389922/
C:\Users\Clarion Smith\Documents\Sites\simple_cms>rails server C:/Ruby22/lib/ruby/gems/2.2.0/gems/ac
我有一个基本的静态网页。 class StaticPagesController true %> 这是显示为导致错误的行。导致问题的原因是什么? 当我删除 stylesheet_link_tag
我有一个具有以下命名空间的 ruby View :ActionView::Base.new 但我想添加一个新方法以供此 ActionView::Base 类使用。 最佳答案 在 myapp/lib
所以我实现了为我的 ActionBar 中的 MenuItem 设置自定义 ActionView,太棒了! 现在,如何让 menuItem 显示它的标题(在 xml 中设置)? 这很重要,因为我希望用
将 mysite 部署到 VPS 后,我面临此运行时错误。请注意,在我的本地机器上,一切正常。 当我尝试通过 Controller 路由访问任何 View 时,可以说 PostsController#
我在 Rails 中遇到一些路由问题。 我已经为 Project 模型准备了一个模型,所以我使用 rails generate scaffold_controller 生成了一些默认 Controll
正如标题所说,我在 MenuItem 上使用 setActionView 进行设置,布局如下: 问题是 ProgressBar 显示为右对齐。 (它应该与中心对齐,与 MenuItem
我在 application_contoller.rb 中有一个方法,其中包含对 send_file 的调用。我从 javascript 渲染的部分调用它,并收到以下错误 - ActionView::
运行下面的代码时出现以下异常: uninitialized constant ActionView::CompiledTemplates::Current Controller : class Use
当 Google 机器人尝试访问我的某个 Controller 时,我收到此错误消息。 ActionView::MissingTemplate: Missing template channels/s
我正在测试 Rails Controller 并尝试使用代码执行获取: delete :remove_logs, :id => 3 它始终返回一个 ActionView::MissingTemplat
在将我的元素推送到 Amazon Web Services 上的实时环境然后访问该域时,我目前遇到了一个错误。 ActionView::Template::Error (Command 'java -
我已经安装了 timezone gem 并且在我看来 现在我得到了 uninitialized constant ActionView::CompiledTemplates::Timezone 还有
我想在我的操作栏中创建一个始终展开的搜索窗口。我正在使用 ActionBar Sherlock 库。根据我发现的一些样本,这段代码应该可以解决问题 public boolean onCreat
我在抽屉导航中使用支持的 NavigationView 来显示项目菜单。 我想在菜单项旁边显示连接请求计数器。 我试过像这样在 XML 菜单定义中设置 actionLayout ..
现在,我不得不承认,我是 Ruby on Rails 的新手,并不是很了解每个概念。我已经安装了 Devise 进行身份验证并遵循了 this guide在我的 View 中包含注册和登录链接。 这是
我一直在苦苦寻找这个问题的答案,显然我还没有做到。我尝试编码我的第一个小部分,我可以毫无问题地打开服务器,但是当我打开它时,服务器没有向我展示我编码的内容,而是告诉我:类型错误:对象不支持此属性或方法
我正在使用 Rails 3.2.3/Ruby 1.9.3p125/jbuilder (0.4.0) 在我的 view/mycontroller 文件夹中,我有一个 show.json.jbuilder
我已经使用 capistrano 部署了我的应用程序在 AWS , 与 nginx和 unicorn .当我打开我的主页时,它是空的。这是我的unicorn日志 Started GET "/" for
我正在使用 ruby on rails 3。我有一个名为 Content 的模型.在 Controller 中,我提取了一些变量并将它们传递给查看器。在查看器中,我想使用我自制的函数,这样我就不会
我是一名优秀的程序员,十分优秀!