我目前正在使用 Ruby v 2.0.0p195 和 rails v 3.2.13
我对 Rails 和 ruby 非常陌生,并且已经潜入其中,通过进入一个有趣的项目来学习如何做到这一切。
我想为学校出勤记录创建一个条目表格,该表格将列出学生姓名并提供在给定日期同时更新他们的记录的机会。即表格上的一个大按钮,可以立即为所有学生更新选定的日期,同时提供机会将特定学生标记为缺席。
我已经在使用现有的学生控制器方法为学生创建个人记录,并且效果很好。我什至可以为每个学生创建一个单独的考勤登记册,这也很有效,但是当我尝试将整个小组放在一个列表中时,我无法让它发挥作用,而且我不知道如何进行。
我是使用嵌套表单方法在学生控制器中创建新方法,还是使用未用于任何操作的出勤控制器方法来创建和编辑这些记录。如果我使用考勤控制器,我如何列出学生并从考勤控制器中链接这些记录?
我有 2 张桌子:
学生和出席
学生.rb
has_many :attendances, :dependent => :destroy
accepts_nested_attributes_for :attendances, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
出勤率.rb
attr_accessible :present, :attdate, :absent, :partial, :notified, :notes, :student_id
belongs_to :student, :class_name => 'Student'
routes.rb 看起来像这样:
root to: 'home_page#home'
get 'attendance/:id', to: 'students#attentry'
get 'attendance', to: 'students#attentry'
resources :attendances
resources :students do
member do
get 'attentry'
end
end
resources :students do
resources :attendances
end
resources :students
get 'students/attentry'
我认为我的一些路线变得混乱,因为我不得不添加一些位来让个别事情正常工作。
我目前用于学生出勤的控制器方法是这样的:
def attentry
@student = Student.find(params[:id])
@attendance = @student.attendances.build
respond_to do |format|
format.html { render action: "attentry" }
format.json { render json: @student }
end
end
观点是这样的:
<%= form_for (@student) do |f| %>
<%= f.text_field :name -%>
<div class="span9">
<table class = "table table-striped">
<tr>
<td>Date</td>
<td>Present</td>
<td>Absent</td>
<td> Part Day</td>
<td>Notified</td>
<td>Notes</td>
</tr>
<%= f.fields_for :attendances do |fc| %>
<tr>
<td><%= fc.text_field :attdate %></td>
<td><%= fc.check_box :present %></td>
<td><%= fc.check_box :absent %></td>
<td><%= fc.text_field :partial %></td>
<td><%= fc.check_box :notified %></td>
<td><%= fc.text_area :notes, :rows => 3 %></td>
</tr>
<% end %>
</div>
</table>
<br />
<div class="actions">
<%= f.submit %>
</div>
无论如何,我得到的是一张表格,其中显示了一个学生的所有出勤详细信息,我试图让所有学生都放在一张桌子上,这样我就可以通过一个按钮和复选框一次性更新它们。
这更像是一个 Javascript 的东西还是我可以在 Ruby/Rails 的土地上做这个?
我经历了很多railscasts和stackoverflow帖子,并逐渐将它们放在一起并修补在一起,但这部分让我难倒了好几个星期。我开始怀疑 Ruby 和 Rails 的版本是否让我头疼,因为我发现的很多潜在答案似乎都无法正常工作,即使它们是从 rails cast 等逐字创建的。 .....提前感谢您的任何想法,建议,看的地方。