rails 3 的一对一的关联

主要将 ActiveRecord  一对一关联的实例:

  Classroom  has one  Teacher

classroom 的属性: name,capacity,teacher

teacher 的属性:name,sex,age

利用Scaffold 生成器:

$ rails g scaffold teacher name:string sex:string age:integer

$ rails g scaffold classroom name:string capacity:integer teacher:references

 

 

 

Scaffold 已经为我们生成了基本的程序框架了。

然后修改app/views/classroom/_form.html.erb 的内容,添加选择老师的下拉框,并且为每个输入框添加默认值。

<%= form_for(@classroom) do |f| %>

  <% if @classroom.errors.any? %>

    <div id="error_explanation">

      <h2><%= pluralize(@classroom.errors.count, "error") %> prohibited this classroom from being saved:</h2>

 

      <ul>

      <% @classroom.errors.full_messages.each do |msg| %>

        <li><%= msg %></li>

      <% end %>

      </ul>

    </div>

  <% end %>

 

  <div class="field">

    <%= f.label :name %><br />

    <%= f.text_field :name ,{:value => "梨花教师"} %>

  </div>

  <div class="field">

    <%= f.label :capacity %><br />

    <%= f.number_field(:capacity,{:value => 20}) %>

  </div>

  <div class="field">

    <%= f.label :teacher %><br />

    <%= f.select(:teacher_id,Teacher.all.collect{|p| [p.name,p.id]},{:include_blank =>"选择老师...",:selected=>2}) %>

  </div>

  <div class="actions">

    <%= f.submit %>

  </div>

<% end %>

 

 

 

 

修改app/views/classroom/index.html.erb 的内容:

<td><%= classroom.teacher.name %></td>

即可。

访问地址 http://localhost:3000/classrooms 即可添加内容和结果了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值