Ruby on rails初体验(三)

 

体验一体验二中的内容,此节将体验二中最开始的目标来实现,体验二中已经将部门添加的部分添加到了公司的show页面,剩下的部分是将部门列表也添加到公司的显示页面,整体思路和体验二中相同,但是还是会有点小问题,下面看具体实现。

将app/views/departments/index.html.erb复制到app/views/companies/_department_list.html.erb,在company的show.html.erb页面模版中添加如下代码:

1 <%= render :partial => "department_list" %> 

company的show.html.erb页面模板如下:

浏览页面出现如下问题,跟昨天的问题一样,因为变更了控制器,@department实例变量没有初始化,需要添加一个局部变量。

1 <%= render :partial => "department_list", :locals => { :departments => Department.find(:all)}%>

将_department_list.html.erb中循环的实例变量改为局部变量:

1 <% departments.each do |department| %>  

大概就是这个样子,但是有2个问题:

1:在添加部门的页面中,没有必要填写cid,因为在公司信息界面cid信息已经存在。

2:公司现实页面的部门列表中的部门有部分不是属于此公司的,

以为我们查找部门的时候是查找的全部。

下面解决这两个问题:

1:将_new_department.html.erb中的CID的输入框去掉就好。

2:这个麻烦一点,需要有几部完成这个操作:

第一步:我们给Company赋予名为departments的额外属性,我们需要在Company模型代码里定义这个关系:

1 class Company < ActiveRecord::Base
2 has_many :departments
3 end

第二步:将company/show.html.erb中关于传递:department局部变量的方法改为如下方式:

       1 <%= render :partial => "department_list", :locals => { :departments => @company.departments}%>

查案结果,发现错误:

原来ror的主外键关系是通过约定表列的名字来将数据连接起来的,将department中的cid改为company_id,改完之后要将对应的模板中的对应标记进行修改后查看结果正确。

 
 
分类: Ruby

Ruby on rails3的更多相关文章

  1. Rails ---> routes.rb 详解

    理解路由的目的 看懂routes.rb文件中的代码 使用经典的hash风格或者现在比较流行的Restful风格构造你自己的路径 断定一个路径会映射到哪一个controller和action 路由的双重 ...

  2. rails跑通第一个demo

    rails -h 查看帮助 Usage: rails new APP_PATH [options] Options: -r, [--ruby=PATH] # Path to the Ruby bina ...

  3. RVM 解决 Ruby 的版本问题

    RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换. RVM 的官网是 https://rvm.io/. 如果你打算学习 Ruby / Rails, RVM 是必不可少的工 ...

  4. ASP.NET MVC与RAILS3的比较

    进入后Web年代之后,MVC框架进入了快速演化的时代,Struts等垂垂老矣的老一代MVC框架因为开发效率低下而逐渐被抛弃,新一代的MVC则高举敏捷的大旗,逐渐占领市场,其中的代表有Rails (ru ...

  5. windows 上rails3.2 + ruby1.9环境搭建

    题外话:本文是通过参考网友资料,亲自尝试过后写的,有不对之处,还请网友指正! 1.搭建环境 准备ruby1.9.3 下载地址: 下载地址:http://rubyforge.org/frs/?group ...

  6. ruby整理

    参考博客:https://www.cnblogs.com/felixzh/p/8081622.html 官网地址 https://rvm.io/rvm/install 一.前提  centos6.8下 ...

  7. RVM 安装 Ruby

    RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换. https://rvm.io/ 如果你打算学习 Ruby / Rails, RVM 是必不可少的工具之一. 这里所有的 ...

  8. Ruby Tutorial

    http://www.tutorialspoint.com/ruby/ruby_quick_guide.htm http://www.cnblogs.com/PurpleCow/archive/201 ...

  9. ruby 数据sql操作

    ActiveRecord ActiveRecord 是 Rails 的 ORM 元件,負責與資料庫溝通,讓我們可以用物件導向的語法操作資料庫.在”打造 CRUD 應用程式”一章中提到的對應概念如下: ...

随机推荐

  1. java多线程(同步和死锁,生产者和消费者问题)

    首先我们来看看同步与死锁: 所谓死锁.这是A有banana,B有apple. A至B说:你把apple对我来说,,我会banana给你. B至A说:你把banana对我来说,,我会apple给你. 可 ...

  2. JS 添加到事件的多个对象

    费周折码如下面: 方法一: <em>v</em>ar pArys=document.getElementsByClassName("ps"); for(va ...

  3. hdu 3460 Ancient Printer

    Problem Description The contest is beginning! While preparing the contest, iSea wanted to print the ...

  4. 《JAVA与模式》之单例模式 [转]

    在阎宏博士的<JAVA与模式>一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式的 ...

  5. Java生成CSV文件

    1.新CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; im ...

  6. Apache & WebDav 配置(一)

    (一)简单Apache服务器的搭建!用于文件de上传.下载.修改.删除! ---------- - Apache 1. 使用最广的 Web 服务器.支持各种脚本(PHP)的执行 2. Mac自带,只需 ...

  7. 搜集朋友写的几篇Android Elf相关的文档

    对android elf的资料学习,多数是在看雪找的资料,另一部分朋友的研究,当然,给他们提议过整理成一系列文章,只是大家工作都太忙,也都没顾上,这里简单整理放上一些pdf的资料,有兴趣的朋友能够看看 ...

  8. Linux MySQL自己环境搭建的笔记

    cd /usr/share/selinuxsetenforce 0tar -xvf MySQL-5.6.12-1.el6.x86_64.rpm-bundle.tarrpm -qa|grep -i my ...

  9. Node.js与MongoDB的基本连接示例

    Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...

  10. Django教程汇总

    Django基础教程 被解放的姜戈01 初试天涯 被解放的姜戈02 庄园疑云 被解放的姜戈03 所谓伊人 被解放的姜戈04 各取所需 被解放的姜戈05 黑面管家 被解放的姜戈06 假作真时 Djang ...