ruby填充组合框
我有两个对象:成分和来源。ruby填充组合框,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有两个对象:成分和来源。 每个成分都有一个来源,因此在成分中我有来源\u id 视图将显示 <p> <b>Name:</b> <%= @ingredient.name %> </p> <p> <b>Origin:</b> <%= @ingredient.origin_id %> </p> 我该修什么 编辑 增加: 定义编辑 @配料=配料.查找(参数[:id
每个成分都有一个来源,因此在成分中我有来源\u id
视图将显示
<p>
<b>Name:</b>
<%= @ingredient.name %>
</p>
<p>
<b>Origin:</b>
<%= @ingredient.origin_id %>
</p>
我该修什么
编辑
增加:
定义编辑
@配料=配料.查找(参数[:id])
@origins=Origin.all
结束我看不出@origins在哪里声明。看起来你的@origins只是零,而不是集合。“在我编写的编辑表单中,它可以工作”-如果它没有损坏,就不要修复它。我知道。但在其他方面,我想改变它。最好是开始尝试改变一些有效的东西,而不是不起作用的东西。更容易调试。
class Ingredient < ActiveRecord::Base
has_and_belongs_to_many :recipes
belongs_to :origin
attr_accessible :name, :origin_id
end
class Origin < ActiveRecord::Base
attr_accessible :name
end
<% originsArray = Origin.all.map { |origin| [origin.name, origin.id] } %>
<div class="field">
<%= f.label :origin_id %><br/>
<%= f.select(:origin_id, originsArray) %><br/>
</div>
<%= collection_select(:origin, :id, @origins, :id, :name, options ={:prompt => "-Select a payment"}, :class =>"origin") %>
undefined method `map' for nil:NilClass