添加下拉框,其中将包含回形针对象

时间:2015-09-12 03:25:09

标签: ruby-on-rails

我正在尝试创建一个下拉框,其中包含我的附件名称以及附加的对象(使用回形针)。一旦他们从下拉框中选择了一个附件,我希望用户能够下载该报告。尝试过传统的选择方法,无济于事。任何帮助或见解将不胜感激!这是我的视图代码,允许我下载报告。

<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) %>

1 个答案:

答案 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);"}%>

我希望它适合你。