- 学习 Ruby on Rails
- Rails 2.1 首页
- Rails 2.1 简介
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 Active Records
- Rails 2.1 迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 上传文件
- Rails 2.1 发送邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 认证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 提示与技巧
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
Ruby on Rails 2.1 - HTML 表单
表单
要创建具有指定操作和 POST 请求的表单标签,请使用以下语法:
<% form_tag :action => 'update', :id => @some_object do %>
Ruby Block
<% end %>
or
<% form_tag( { :action => :save, }, { :method => :post }) do %>
Ruby Block
<% end %>
使用 :multipart => true 定义 MIME 多部分表单(用于文件上传)。
<% form_tag( {:action => 'upload'}, :multipart => true ) do %>
Ruby Block
<% end %>
文件上传
在您的视图中定义一个多部分表单:
<% form_tag( { :action => 'upload' }, :multipart => true ) do %>
Upload file: <%= file_field( "form", "file" ) %>
<br />
<%= submit_tag( "Upload file" ) %>
<% end %>
在控制器中处理上传:
def upload file_field = @params['form']['file'] rescue nil # file_field is a StringIO object file_field.content_type # 'text/csv' file_field.full_original_filename ... end
文本字段
要创建文本字段,请使用以下语法:
<%= text_field :modelname, :attribute_name, options %>
请查看以下示例:
<%= text_field "person", "name", "size" => 20 %>
它将生成以下代码:
<input type="text" id="person_name" name="person[name]" size="20" value="<%= @person.name %>" />
要创建隐藏字段,请使用以下语法:
<%= hidden_field ... %>
要创建密码字段,请使用以下语法:
<%= password_field ... %>
要创建文件上传字段,请使用以下语法:
<%= file_field ... %>
文本区域
要创建文本区域,请使用以下语法:
<%= text_area ... %>
请查看以下示例:
<%= text_area "post", "body", "cols" => 20, "rows" => 40%>
它将生成以下代码:
<textarea cols="20" rows="40" id="post_body" name="post[body]">
<%={@post.body}%>
</textarea>
单选按钮
要创建单选按钮,请使用以下语法:
<%= radio_button :modelname, :attribute, :tag_value, options %>
请查看以下示例:
radio_button("post", "category", "rails")
radio_button("post", "category", "java")
它将生成以下代码:
<input type="radio" id="post_category" name="post[category]" value="rails" checked="checked" /> <input type="radio" id="post_category" name="post[category]" value="java" />
复选框按钮
要创建复选框按钮,请使用以下语法:
<%= check_box :modelname, :attribute,options,on_value,off_value%>
请查看以下示例:
check_box("post", "validated")
它将生成以下代码:
<input type="checkbox" id="post_validate" name="post[validated]" value="1" checked="checked" /> <input name="post[validated]" type="hidden" value="0" />
让我们检查另一个示例:
check_box("puppy", "gooddog", {}, "yes", "no")
它将生成以下代码:
<input type="checkbox" id="puppy_gooddog" name="puppy[gooddog]" value="yes" /> <input name="puppy[gooddog]" type="hidden" value="no" />
选项
要创建下拉列表,请使用以下语法:
<%= select :variable,:attribute,choices,options,html_options%>
请查看以下示例:
select("post", "person_id", Person.find(:all).collect {|p| [ p.name, p.id ] })
这可能会生成以下代码。它取决于您的数据库中可用的值。
<select name="post[person_id]"> <option value="1">David</option> <option value="2">Sam</option> <option value="3">Tobias</option> </select>
日期时间
以下是使用数据和时间的语法:
<%= date_select :variable, :attribute, options %> <%= datetime_select :variable, :attribute, options %>
以下是使用示例:
<%=date_select "post", "written_on"%> <%=date_select "user", "birthday", :start_year => 1910%> <%=date_select "user", "cc_date", :start_year => 2005, :use_month_numbers => true, :discard_day => true, :order => [:year, :month]%> <%=datetime_select "post", "written_on"%>
rails-quick-guide.htm
广告