我正在尝试创建一个下拉框,其中包含我的附件名称以及附加的对象(使用回形针)。一旦他们从下拉框中选择了一个附件,我希望用户能够下载该报告。尝试过传统的选择方法,无济于事。任何帮助或见解将不胜感激!这是我的视图代码,允许我下载报告。
<h2>Policy Value Reports</h2>
<% @user.attachments.each do |attachment| %>
<p>
<%= link_to attachment.name, attachment.report.url %>
</p>
<% end %>
<%= collection_select(:attachment, :report, Attachment.all, :id, :name) %>
答案 0 :(得分:0)
你需要做的就是使用rails formhelper select(使用html选项:onchange),这将很容易帮助你创建你想要的下拉框,我建议你阅读:
http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html
然后这个:
How to auto-submit Rails formhelper, when onchange occurs on select dropdown (populated from DB)
修改强>
我做了一个简单的例子,您可以尝试将其翻译成您的代码。
我有一个模型用户,它使用Paperclip称为“照片”的任何类型(图像或文档)的附件,我做了一个包含所有用户的下拉列表,当我选择其中一个时,我自动下载(重定向)使用此代码关联的附件:
<%= collection_select :user, :photo, User.all, :photo, :name, {}, {:onchange => "window.location.replace(this.value);"}%>
或
<%= select_tag 'Users_List', options_from_collection_for_select(@users, "photo", "id"),:onchange => "window.location.replace(this.value);" %>
在你的情况下,我会尝试这样的事情:
<%= collection_select :attachment, :report, Attachment.all, :report, :name, {}, {:onchange => "window.location.replace(this.value);"}%>
我希望它适合你。