从Ruby菜单中获取选择项的值simple_form并计算结果



我正在使用simple_form,我有一个包含 3 个值的选择菜单,这些值被打印到索引中。我想知道获取用户设置的值的正确和最佳方法,然后计算当前 3 个不同选项中有多少个。

我是 ruby 的新手,所以这是一个很大的学习曲线,任何帮助将不胜感激。

在我的_form.html.erb

<%= f.input :menu, :as => :select, :collection => [ "Chocolate", "Cake", "Custard"] %>

我的索引.html.erb

<td><%= reply.menu %></td>

.db

class CreateReplies < ActiveRecord::Migration
  def change
    create_table :replies do |t|
      t.string :name
      t.integer :menu
      t.boolean :rsvp, :default => false
      t.timestamps
    end
  end
end
  1. 您希望建立多对一关系(对一个菜单进行多次回复)
  2. 将迁移更改为 t.integer :menu_id
  3. 创建另一个名为 Menu 的模型,其中包含 和 id 和 即名称。

因此,请使用如下所示的内容:

#  == Schema Information
#
#  Table name: replies
#
#  id          :integer          not null, primary key
#  menu_id     :integer
#  ...
#  created_at  :datetime         not null
#  updated_at  :datetime         not null

class Reply < ActiveRecord::Base
  attr_accessible :menu_id, etc.
  belongs_to :menu, :inverse_of => :replies # belongs_to because has the FK 
 ...
end
#  == Schema Information
#  
#  Table name: menus
#
#  id         :integer          not null, primary key
#  name       :string(255)
#  created_at :datetime         not null
#  updated_at :datetime         not null

class Menu < ActiveRecord::Base
  attr_accessible :name
  has_many :replies, :inverse_of => :menu, :dependent => :nullify # the FK is in the reply
  accepts_nested_attributes_for :replies
end

然后,由于您使用的是SimpleForm:

 <%= f.association :menu, :collection => Menu.all, :prompt => "- Select -"%>

然后,其他所有内容在很大程度上都是自动的(即,当您创建/更新回复时,它将获取已发布的menu_id并相应地分配它。

如果我是你,我会深入研究 http://ruby.railstutorial.org/。这是一个很好的资源。

更新:忘记了视图显示(如果您尝试显示所选菜单的名称 - 如果您尝试显示整个菜单,那是完全不同的情况):

<td><%= @reply.menu.name %></td>

相关内容

  • 没有找到相关文章

最新更新