• @lgn21st Ruby on Rails Web 开发学习实录 第 401 页原文 就是我发的第一句哦 一个字不差 伤心了=.=

  • @lgn21st 那岂不是传过去个 id 到那边再取了一遍 也不是传过去的啊 书上骗我呀=。=

  • 我的 student 用了指令 rails generate scaffold Student 那是不是 card 也得 rails generate scaffold Card 呢 混乱了=。=

  • 早上试着操作了一下表的一对一关联:) 创建了 students 表 id(设置为主键,唯一) name(text) 创建了 cards 表 id(设置为主键,唯一) name(text) student_id(设置为外键关联到 students 表的 id 主键) -.-以上都是手动的

    再在 model 中添加代码

    class Student < ActiveRecord::Base
      has_one :card
    end
    
    
    class Card < ActiveRecord::Base  #手动加的model文件
      belongs_to :student
    end
    
    

    最后在页面访问:

    <td><%= student.card.name%></td> 
    
    

    但是报错:

    NameError in Students#index 
    Showing C:/Documents and Settings/Administrator/myweb/app/views/students/index.html.erb where line #22 raised: 
    uninitialized constant Student::Card
    
    
    Extracted source (around line #22): 
    21:     <td><%= student.name%></td> 
    22:     <td><%= student.card.name%></td> 
    23:     <td><%= link_to '详细', student %></td>
    24:     <td><%= link_to '编辑', edit_student_path(student) %></td>
    25:     <td><%= link_to '删除', student, confirm: '确定删除吗?', method: :delete %></td>
    
    

    我以上的操作还不足以使两张表关联上吗:) 求指教

  • 嗯?建脚手架的时候可以建表这么建 model 的时候也可以建表 =。=我完全被 rails 里的关联弄迷糊了

  • 先创建好模型之间的关系 再创建符合关系的表 再把每个表除了刚才的主键外键之外缺少的字段手动添加上就行了吗?:)