【发布时间】:2014-01-07 07:41:09
【问题描述】:
我有 3 个text_fields 在我的视图中输入学生姓名。当然你可以输入一个学生或三个学生,但我想确保至少提供一个学生,因为一个项目必须有一个学生分配给它。
这是我的看法:
<%= form_for @project, url: projects_path do |f| %>
<p>
<%= f.label :name, "Name" %>
<%= f.text_field :name %>
</p>
<p>
<%= f.fields_for :students do |s| %>
<%= s.label :name %>
<%= s.text_field :name %>
<% end %>
</p>
<p>
<%= f.submit "Submit" %>
</p>
<% end %>
以及来自 Projects 控制器的 new 方法:
def new
@project = Project.new()
3.times do
student = @project.students.build
end
end
我想要实现的是检查是否提供了至少一名学生,如果不只是显示警报或禁用提交。
编辑
本项目中使用的模型:
class Student < ActiveRecord::Base
belongs_to :project
end
class Project < ActiveRecord::Base
has_many :students
accepts_nested_attributes_for :students
validate :validate_student_count
def validate_student_count
errors.add(:students, "at least one is required") if students.count < 1
end
end
【问题讨论】:
-
您没有告诉我们您遇到了什么问题,只告诉我们您想要达到的目标。
-
我刚刚编辑了我的问题。
标签: ruby-on-rails ruby ruby-on-rails-4 textfield