今天的学习记录 :2008-3-20
1 字符串中插入表达式 “”最好
2 generate controller 是应该输入复述形式(对应表名) model 则是单数
3 关系的表达 has_many :works belongs_to :composer
class Composer < ActiveRecord::Base
ddhas_many :works
4 class Customer < ActiveRecord::Base
ddhas_many
rders,
ddddddddddd:dependent => true,
ddddddddddd:order => "created_at ASC"
end
5
Define before_create in the Order class as follows:
def before_create
dd self.status = "open"
end
6
We’ll write open_orders to return an ActiveRecord collection:
def open_orders
orders.find(:all, :conditions => "status = 'open'")
end
7
def editions
ddddEdition.find_by_sql("SELECT edition_id from editions_works
ddddLEFT JOIN works ON editions_works.work_id = works.id
ddddLEFT JOIN composers ON works.composer_id = composers.id
ddddWHERE (composers.id = #{id})")
end
8
文件名为 : new.html.erb
<div style='float:right;width:70%;'>
<h1>н¨ÈËÔ±ÐÅÏ¢</h1>
<%= error_messages_for :human %>
<% form_for(@human) do |f| %>
<p>
±àºÅ :<%= f.text_field :code %><br># 表示f 的类型是text_field (这种方法真是不习惯)
ÐÕÃû :<%= f.text_field :name %>
<%= f.submit "´´½¨" %>
</p>
<% end %>
<%= link_to '·µ»Ø', humen_path %>
</div>
这段代码中 form_for 默认的action其实对应的是创建一个humam (约定优于配置,由于是new.html.erb而且是post(提交),所以对应的方法是
2.0 scallfod 自动生成的代码
# GET /humen/new get方式
# GET /humen/new.xml
def new
@human = Human.new
respond_to do |format|
format.html # new.html.erb
format.xml { render
ml => @human }
end
end
# POST /humen post方式
# POST /humen.xml
def create
@human = Human.new(params[:human])
respond_to do |format|
if @human.save
flash[:notice] = "#{@human.name}´´½¨³É¹¦!"
format.html { redirect_to(:action => 'index') }
format.xml { render
ml => @human, :status => :created, :location => @human }
else
format.html { render :action => "new" }
format.xml { render
ml => @human.errors, :status => :unprocessable_entity }
end
end
end
而如果文件名是edit.html.erb 则会去执行update方法
(解释下 :在new.html.erb 页面打开时(get) 先执行new方法 创建@human ,当提交时(post) 调用create方法 创建human)
<% form_for(@human) do |f| %> 这句 : 可以换成 (f表示变量 @human)
<% form_for :human, @human,:url => { :action => "create" } do 是一样的
<% form_for(@post) do |f| %>
...
<% end %>
This will expand to be the same as:
<% form_for :post, @post, :url => post_path(@post), :html => { :method => :put, :class => "edit_post", :id => "edit_post_45" } do |f| %>
...
<% end %>---自己也搞不太清楚了。
我换一种写法
<div style ="float:right;width:70%">
<form action="/shops/new"
method="post">
²ÍÌüÃû³Æ:
<%= text_field :shop, :name %>
<br />
¼Û¸ñ·¶Î§:
<%= text_field :shop, :pricerange %>
<br />
µØÖ· :
<%= text_field :shop, :address %>
<br />
<input type="submit" value="Ìá½»" />
</form>
</div>
在shops控制器中的new方法:
def new
case request.method
when :get
@shop = Shop.new
when :post #commit的时候
@shop = Shop.new(params[:shop])
@shop.save
end
end
这样也可以
9
对象save的时候报 ActionController::InvalidAuthenticityToken 错误 :
加 protect_from_forgery
nly => [:create, :update, :destroy] 不知道为什么
10
rails中的form表单总结
1.表单类型一
<div class=""class="form">
<%= error_messages_for 'user' %>
<fieldset>
<legend>请输入用户信息</legend>
<% form_for :user do |form| %>
<p>
Name: <%= form.text_field :username, :size => 30 %>
</p>
<p>
Password: <%= form.password_field :password, :size => 30 %>
</p>
<p>
ConfirmPassword: <%= form.password_field :password_confirmation, :size => 30 %>
</p>
<%= submit_tag "注册", :class => "submit" %>
<% end %>
</fieldset>
</div>
此种是对象绑定的方式,通过表单,跟Model层的对象绑定,通常完成数据的增,改功能。
2.表单类型二
<div class=""class="form">
<%= error_messages_for 'user' %>
<fieldset>
<legend>请输入用户信息</legend>
<% form_tag do %>
<p>
Name: <%= text_field_tag :username, params[:username], :size => 30 %>
</p>
<p>
Password: <%= password_field_tag :password, params[:password], :size => 30 %>
</p>
<%= submit_tag "注册", :class => "submit" %>
<% end %>
</fieldset>
</div>
此种主要是为了表单传值
form_for和model绑定,而form_tag不是
form_tag想传什么参数都行,没有约束
11 验证
class Person < ActiveRecord::Base
validates_length_of :first_name, :maximum=>30
validates_length_of :last_name, :maximum=>30, :message=>"less than %d if you don't mind"
validates_length_of :fax, :in => 7..32, :allow_nil => true
validates_length_of :phone, :in => 7..32, :allow_blank => true
validates_length_of :user_name, :within => 6..20, :too_long => "pick a shorter name", :too_short => "pick a longer name"
validates_length_of :fav_bra_size, :minimum=>1, :too_short=>"please enter at least %d character"
validates_length_of :smurf_leader, :is=>4, :message=>"papa is spelled with %d characters... don't play me."
end
12
generate scaffold Post title:string body:text 生成框架 并且会生成创建表的schema
执行创建脚本 rake db:migrate 执行 rake db:reset drop表。。
demo 表
001_create_SmUsers.rb
class CreateSmUsers < ActiveRecord::Migration
def self.up
create_table :sm_users do |t|
t.string :name, :null => false #name字段类型 string 不能为空
t.string :realname,:password,:email,:department,:telephone,:mobile
t.text :memo #
t.boolean :status
t.timestamps
end
add_index :sm_users, :name,:unique=>true #增加sm_users表name字段 唯一索引
end
def self.down
remove_index :sm_users, :name
drop_table :sm_users
end
end
---个人感觉只是一个对mysql比较方便的工具而已 如果数据集库是oracle 不知道会建成什么样子 (可以指定表空间之类的东西么 ?)
13
map.root :controller => 'posts' 讲posts这个action作为index ,同时要把 public下的index.html删除掉
14
分享到:
- 2008-03-21 10:00
- 浏览 1068
- 评论(0)
- 论坛回复 / 浏览 (0 / 1801)
- 查看更多
相关推荐
### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...
标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...
在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...
Ruby on Rails 安装指南 Ruby on Rails 安装指南是指安装 Ruby 1.8.6 和 Rails 2.0.2 的详细步骤。首先,需要下载 Ruby One-Click Installer 版本,并安装 Ruby。然后,下载 Rails 2.0.2 版本,并安装。接下来,...
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...
在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...
标题 "rails2.3.2" 指的是 Ruby on Rails 框架的一个特定版本,即 2.3.2。Ruby on Rails(通常简称为 Rails)是一个基于 Ruby 语言的开源 Web 应用程序框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建...
Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...
Rails是Ruby编程语言的一个著名框架,用于开发Web应用程序。它以MVC(模型-视图-控制器)架构模式为基础,提供了许多内置功能,使开发者能够更高效地编写代码。在这个"rails本地安装包完整版"中,包含了Rails 2.1.0...
本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails Engine)进行基于组件的Rails应用开发,以及如何对应用程序的大型模块进行拆分和模块化。以下是书中一些核心知识点的详细说明: 1....
**中文版Rails教程** Rails,全称为Ruby on Rails,是一个基于Ruby编程语言的开源Web应用程序框架,遵循MVC(模型-视图-控制器)架构模式。Rails以其“约定优于配置”(Convention over Configuration)和“Don't ...
标题 "Rails相关电子书汇总" 暗示了这个压缩包包含了关于Ruby on Rails框架的电子书籍资源。Ruby on Rails,通常简称为Rails,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,以...