has_one_ form data rails

时间:2016-03-08 08:01:59

标签: ruby-on-rails ruby forms associations

我有两个班级

class Movie < ActiveRecord::Base
  has_one :rating

end

class Rating < ActiveRecord::Base

end

我已经在评级表中填充了数据。

在创建电影时,如何将评级表中的数据填充为选择字段?并且在保存电影后创建关联?

这是可能的吗?

非常感谢任何帮助

3 个答案:

答案 0 :(得分:0)

您可以像以下一样使用它:

<%= f.select(:rating, Rating.all.collect {|u| [u.name]}, :prompt => 'Select')  %>

答案 1 :(得分:0)

您应该在评分中添加belongs_to关联。

然后以你的形式:

<%= 
  f.select(:rating_id, Rating.all.map {|u| [u.name, u.id]}, :prompt => 'Select')  %>

更新: belongs_to是指定外键的关联方。因此,从您的示例中我发现Movie可以被评为 0 或更多次。 Rating始终为一个Movie

所以你的模型应该是:

class Movie < ActiveRecord::Base has_many :ratings end class Rating < ActiveRecord::Base belongs_to :movie end

答案 2 :(得分:0)

在您的评分模型中,取一个常数,如果您有has_many,则您的评分为belongs_to

class Rating < ActiveRecord::Base
  Ratings = Rating.all.pluck(:id,:name)
end

在您的电影表格中,

<%= f.select :rating, Rating::Ratings.map{|rating| [ rating[1], rating[0] ]} %>

获取要为其保存电影评级的字段名称(如果未评级