打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Rails 基础指南

Rails在一些基本功能上的实现:

 

1.Controllers 在Rails中的协调角色

注意,一个C,协调一个M和一个V

1)C与M

class BookController < ApplicationController
  scaffold :model_name                          

#建立与model的关系,scaffold接一个Symbol Object

#Symbol 可以是model类的名字(要区分大小写)

#Symbol 也可以是保存model类的文件的名字(不区分大小写)
end

 

2)C与V

class BookController < ApplicationController
scaffold :book
  def list

    #这可以做必要的操作,帮助View的呈现数据,这时你可以在view有关目录下面放入你的rhtml(其他也可以)
  end
end

 

例如:

class BookController < ApplicationController
scaffold :book
  def list
    @books = Book.find_all      #为list类操作数据,提供一个books的instance variable,list类对应的是view\book下面的list.rhtml
  end
end

 

 

2.Model 在Rails中的角色

1)建立的 model 必须是表名字的单数,并且这个类和数据库自动关联

2)为数据库的表建立关系

  A. belong_to 例如:

class Book < ActiveRecord::Base
  belongs_to :category       #一本书对应一个类别,用belongs_to,此类一个对象只对应一个外部类的一个对象用belongs_to
end

  B. has_many 例如:

class Category < ActiveRecord::Base
  has_many :books            #一类书对应很多本,用has_many,此类一个对象对应很多个外部类的对象用has_many,后面接复数
end

 

我们知道,books表和categories表的关系是,1对N的关系,所以必须在多方,也就是book方,假如一个外键来为两个表建立关联,我们加入category_id就可以了,这样我们就可以通过book的instance variable直接访问categories表的内容,比如:@book.category.name 来读取categroies表里面的name属性

 

 

3.view 在Rails中的角色

使用的是<%%>和<%=expression%>(expression可以加,号,这个是区别于java的)

1)读取数据库里面的数据:

<% @books.each do |book| %>
<%= link_to book.title, :action => "show", :id => book.id %>
<%= book.buydate %>
<% end %>

 

注意,这里的books,是在controller里面就定义的一个variable,它是一个collection,通过each来获取数据库中每一行数据,:action 表示点击连接以后的转向页面,:id表示传递参数 id

 

2)传递参数,数据库检索,通过controller整合

class BookController < ApplicationController
  scaffold :book
  def list
    @books = Book.find_all
  end
  def edit
    @book = Book.find(@params["id"])           #整合view层,同时整合model层
    @categories = Category.find_all
  end
end

 

所有定义的方法,都是针对view的,都是给view使用的。@params["name"]是其他页面传递过来给你def的页面的

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
.NET DDD 实战(1):前期准备之EF CodeFirst
使用 ActiveScaffold 增强 Ruby on Rails 的功能
重构 Rails 项目之最佳实践
Ruby off the Rails
Jruby和ruby互操作[转]
〈转〉重构臃肿 ActiveRecord 模型的 7 种方式 [翻译] · Ruby China
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服