了解关联表的表单如何工作

发布于 2024-12-21 05:44:29 字数 366 浏览 0 评论 0原文

我是 ror 新手。这是我的问题。 我使用生成脚手架命令创建两个表部分和学生。列是 部分 - 名称:字符串 学生 - name:string section_id:integer

in model

section.rb

has_many :students

in model

student.rb

belongs_to :section

现在学生新表单有两列需要填写,即姓名和部门。要创建新学生,我是否必须知道学生所属的每​​个部门的 id?有没有其他方法来获取我输入学生姓名和她的班级的表格?将学生表中的连接列更改为“section_name”会有帮助吗?

I am new to ror.This is my question.
I use generate scaffold command to create two tables section and student.the columns are
section - name:string
student - name:string section_id:integer

in model

section.rb

has_many :students

in model

student.rb

belongs_to :section

Now the student new form has two columns to be filled i.e name and section.To create a new student should I have to know the id of each section to which a student belongs to? Is there any other way to obtain a form where I enter the student name and her section?Will changing the join column to section_name in students table help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青朷 2024-12-28 05:44:30

您不需要更改表中关联的列名称。您的模型关联是正确的。

1)是的,您应该知道创建学生的每个部分的ID。
2)您的表单应类似于

<%= f.collection_select(:section_id, @sections,:id,:name) %>

学生控制器的创建操作中的 和 。

@student = Student.new(params[:students])
@student.save

这里@sections=Section.all

You do not need to change the associated column name in table. your model association is correct.

1) Yes you should know the id of each section to create student.
2) your form should look like

<%= f.collection_select(:section_id, @sections,:id,:name) %>

and in the create action of student controller.

@student = Student.new(params[:students])
@student.save

here @sections = Section.all

逐鹿 2024-12-28 05:44:30

例如:

@section.students.create(:name => 'joe')

更多详细信息

Something like:

@section.students.create(:name => 'joe')

More detailed info.

睫毛上残留的泪 2024-12-28 05:44:30

假设您的表单为您提供了 :name 和 :section_id,您可以在 Students#create 中执行此操作。

def create
  @student = Student.create(:name => params[:name], 
                            :section_id => params[:section_id])
end

Assuming your form gives you :name and :section_id, you can just do this in students#create.

def create
  @student = Student.create(:name => params[:name], 
                            :section_id => params[:section_id])
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文