0
有可能是一个reeeeeally明显的答案,这一个方法,但我不能找到它,那么:的Rails 3 - 如何调用嵌套表格对象
我有有许多time_entries
一个timesheets
模型,
时间表edit.html.erb:
<%= form_for @timesheet do |f| %>
.
.
.
<%= f.fields_for :time_entries do |builder| %>
<%= render 'time_entry_fields', :f => builder %>
<% end %>
time_entry_fields局部
经由嵌套形式加入<%= f.text_field :project %>
<%= f.text_field :day1_hours %>
<%= f.text_field :day2_hours %>
<%= f.text_field :day3_hours %>
<%= f.text_field :day4_hours %>
<%= f.text_field :day5_hours %>
<%= f.text_field :day6_hours %>
<%= f.text_field :day7_hours %>
我想定义显示的所有输入的时间总和的方法 - day1_hours + day2_hours + ...
等我试图把这个模型:
time_entry.rb
def total_hours
d1 = day1_hours || 0
d2 = day2_hours || 0
d3 = day3_hours || 0
d4 = day4_hours || 0
d5 = day5_hours || 0
d6 = day6_hours || 0
d7 = day7_hours || 0
d1 + d2 + d3 + d4 + d5 + d6 + d7
end
如果我在控制台的TimeEntry对象上调用它,它就可以工作:
1.9.3p0 :003 > TimeEntry.find(3).total_hours
TimeEntry Load (0.3ms) SELECT "time_entries".* FROM "time_entries" WHERE "time_entries"."id" = $1 LIMIT 1 [["id", 3]]
=> 8
但我不知道如何从time_entry_fields
部分的形式调用它。我通常可以在控制器中定义@time_entry
,以便我可以使用@time_entry.total_hours
,但是如何对嵌套窗体中的对象执行此操作?
是的!谢谢 :) – ellawren 2012-03-08 22:03:48