我想创建一个多表单来编辑不同模型的分数。
主要模型是Formrule模型,包含与Scoretype模型的habtm关联 并与房间模型有关联。
两个模型都用于查询Scores模型,从而生成@scores实例。对于这个实例,我想创建一个表单,但问题是没有创建field_for。我知道@scores填充正确,但表单没有显示。
这是我现在拥有的表格
<%= form_tag '/scores/update_scores' do %>
<table>
<tr>...</tr>
<% for score in @scores %>
<% fields_for :scores, score do |score| %>
<tr>
<td>
<%= score.hidden_field(:form_id) %>
<%= score.hidden_field(:team_id) %>
<%= score.hidden_field(:scoretype_id) %>
</td>
<td>
<%= score.number_field :scorevalue %>
</td>
</tr>
<% end %>
<% end %>
</table>
<%= submit_tag 'Update' %>
<% end %>
这些是模型: Formrule
class Formrule < ActiveRecord::Base
belongs_to :form
has_and_belongs_to_many :scoretypes
has_and_belongs_to_many :rooms
has_many :teams, :through => :rooms
end
Scoretype
class Scoretype < ActiveRecord::Base
has_many :scores
has_and_belongs_to_many :formrules
end
间
class Room < ActiveRecord::Base
has_many :teams
has_and_belongs_to_many :formrules
end
队
class Team < ActiveRecord::Base
has_many :scores
belongs_to :room
belongs_to :group
end
得分
class Score < ActiveRecord::Base
belongs_to :form
belongs_to :team
belongs_to :scoretype
validates_uniqueness_of :id, :scope => [:team, :scoretype]
end
最后,使用过的控制器(Formrule)
def show
@formrule = Formrule.find(params[:id])
@scoretypes = @formrule.scoretypes.all.collect
@rooms = @formrule.rooms.all.collect
@teams = Team.find(:all, :conditions => {:room_id => @rooms})
@scores = Score.order("team_id").all(:conditions => {:scoretype_id => @scoretypes, :team_id => @teams})
...
端
为什么表单没有显示?有什么建议吗?
提前谢谢大家!
答案 0 :(得分:0)
尝试使用<%= fields_for ... %>
代替<% fields_for ...%>
。