`
jxauyhj
  • 浏览: 3972 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多

今天的学习记录 :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_manyrders,
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  { renderml => @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  { renderml => @human, :status => :created, :location => @human }
      else
        format.html { render :action => "new" }
        format.xml  { renderml => @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_forgerynly => [: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
 
分享到:
评论

相关推荐

    Rails 101 入门电子书

    ### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发工具。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-...

    Rails

    标题 "Rails" 指的是 Ruby on Rails,一个开源的Web应用程序框架,它基于Ruby编程语言,遵循MVC(模型-视图-控制器)架构模式。Rails由David Heinemeier Hansson在2004年创建,其设计理念是强调代码的简洁性、DRY...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    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 2.3.2离线安装rails 2.3.2离线安装rails ...

    [Rails] Crafting Rails Applications (英文版)

    [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

    Rails Recipes是一本针对Ruby on Rails框架的实用书籍,它收集了一系列高效解决问题的技巧和方法,也被称为“Rails开发者的宝典”。作者们通过分享自己的经验和见解,为Rails程序员提供了一本既有实际操作指导又有...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    Ruby on Rails安装指南(Ruby 1.8.6+Rails 2.0.2)

    随着互联网的快速发展,Ruby on Rails作为一种流行的Web开发框架,在开发领域得到了广泛的应用。它的简易性与高效性让许多开发者为之青睐。而想要在本地环境搭建Ruby on Rails的开发环境,掌握正确的安装步骤是基础...

    rails2.3.2

    标题 "rails2.3.2" 指的是 Ruby on Rails 框架的一个特定版本,即 2.3.2。Ruby on Rails(通常简称为 Rails)是一个基于 Ruby 语言的开源 Web 应用程序框架,它遵循 Model-View-Controller (MVC) 设计模式,用于构建...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    rails本地安装包完整版

    Rails是Ruby编程语言的一个著名框架,用于开发Web应用程序。它以MVC(模型-视图-控制器)架构模式为基础,提供了许多内置功能,使开发者能够更高效地编写代码。在这个"rails本地安装包完整版"中,包含了Rails 2.1.0...

    component base rails applications

    本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails Engine)进行基于组件的Rails应用开发,以及如何对应用程序的大型模块进行拆分和模块化。以下是书中一些核心知识点的详细说明: 1....

    中文版rails教程

    **中文版Rails教程** Rails,全称为Ruby on Rails,是一个基于Ruby编程语言的开源Web应用程序框架,遵循MVC(模型-视图-控制器)架构模式。Rails以其“约定优于配置”(Convention over Configuration)和“Don't ...

    Rails相关电子书汇总

    标题 "Rails相关电子书汇总" 暗示了这个压缩包包含了关于Ruby on Rails框架的电子书籍资源。Ruby on Rails,通常简称为Rails,是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,以...

Global site tag (gtag.js) - Google Analytics