在rails的下拉列表中显示数据库中的数据

时间:2014-04-18 20:02:19

标签: ruby ruby-on-rails-3

我有一个表,类别我有类别和ID的名称。我必须创建一个表单,我需要显示一个下拉框,其中包含表格中的类别列表。由于我是铁轨上红宝石的初学者,我不知道该怎么做。请帮忙。 这是我的_from.html.erb

<%= form_for(@xyz) do |f| %>
  <% if @xyz.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@xyz.errors.count, "error") %> prohibited this xyz from being saved:</h2>

      <ul>
      <% @xyz.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <select>
    <%= options_from_collection_for_select(@category.categories, "id", "categ_name") %>
    </select>
    </div>

  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :avatar %><br />
    <%= f.file_field :avatar %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我尝试使用此&lt;%= optin%&gt;事情,但我有错误。 这是我的模特

class Xyz < ActiveRecord::Base
  attr_accessible :email, :name, :avatar
  has_attached_file :avatar
  validates_attachment_content_type :avatar, :content_type => 'video/mp4'
end

1 个答案:

答案 0 :(得分:0)

你可以改变这个:

<select>
    <%= options_from_collection_for_select(@categorey.categoriesl, "id", "categ_name") %>
</select>

<%= select_tag "categories", options_from_collection_for_select(Category.all, "id", "categ_name") %>

这将为您生成id个&#34;类别&#34;您可能应该更改它,因此它在params中正确嵌套

不确定@category.categories看起来没有在帖子中的任何地方引用它,但如果它是一个数组则使用

<%= select_tag "categories", options_for_select(Categorey.scoped.pluck(:name)) %>