kilik52 2008-12-11 23:56
浏览 192
已采纳

这样的需求在rails中该怎么弄?

我想创建一个people表,里面有name等基础属性。另外还想记录该Person曾经就读的学校。一个人可以添加多个学校。例如:
name: AAA, school: school_1, school: school_2, ......
我想过用join表,但是这样school的信息就不在people表里面了。
请问想用restful来满足这样的需求应该怎么弄?谢谢!

[b]问题补充:[/b]
谢谢foxgs的回答。model方面没有问题了。但是在View和Controller上我不知道怎么弄。比如:
scaffold person
scaffold school
又弄了一个model person_school, 里面有person_id和school_id,还有些addtional的字段,比如major_in:string。
按照网上查到的方法,在Person类里面写了
[code="ruby"]
has_many :person_schools
has_many :schools, :through => person_schools
[/code]
在School类里面也类似地写了。

这个是model方面,但是如果我在Person的new.html.erb里面想让用户输入自己就读的学校,并且输入自己的专业,应该怎么写呢。
我用
[code="ruby"]
<%= f.text_field :person_schools.major_in %>
[/code]
显示错误。。。

而且在Controller里面怎么让@person.save正确?
[b]问题补充:[/b]
已经解决,对我有最大帮助的是foxgst,分数就给你了。
另外谢谢yangtao309的回答。

  • 写回答

2条回答 默认 最新

  • iteye_10592 2008-12-12 09:35
    关注

    这是典型的多对多的问题,你搜索一下rails many-to-many。

    另《Web开发敏捷之道》一书中有详细说明。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵