日本看板
广告位招租 详细信息请联系 jkanban@gmail.com キャンペーン中!


 
admin (蕨菜)
一代文豪
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5


UID 1
精华 1
积分 13138
帖子 4658
威望 170
金钱 23293
慈善捐款(日元) 400
阅读权限 200
注册 2007-3-25
 
发表于 2007-11-13 01:10  资料  个人空间  短消息  加为好友 
Rails表单



表单开始标签:
<%= form_tag { :action => :save }, { :method => :post } %>
Use :multipart => true to define a Mime-Multipart form (for file uploads)
表单结束标签:
<%= end_form_tag %>

文本框 Text fields
<%= text_field :modelname, :attribute_name, options %>
生成:
<input type="text" name="modelname[attribute_name]" id="attributename" />

实例:

text_field "post", "title", "size" => 20
<input type="text" id="post_title" name="post[title]"
size="20" value="#{@post.title}" />

隐藏框:
<%= hidden_field ... %>

密码框:
<%= password_field ... %>

文件框
<%= file_field ... %>

Rails Textarea框
<%= 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 Buttons
<%= 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
<%= check_box :modelname, :attribute, options, on_value, off_value %>
实例
check_box "post", "validated" # post.validated? returns 1 or 0
<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 Menu
select "post",
"person_id",
Person.find_all.collect {|p| [ p.name, p.id ] },
{ :include_blank => true }

<select name="post[person_id]">
<option></option>
<option value="1" selected="selected">David</option>
<option value="2">Sam</option>
<option value="3">Tobias</option>
</select>

Collection Selection
<%= collection_select :variable, :attribute, choices, :id, :value %>

日期选择框:
<%= 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,
:0rder => [:year, :month]

datetime_select "post", "written_on"






天下熙熙,皆为利来;天下攘攘,皆为利往。
顶部
www.facebooks.jp 在日帅哥美女花名册 www.i-kanban.com 日本大众点评网 www.rakudoor.com 乐道 www.j-price.com 日本价格网
admin (蕨菜)
一代文豪
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5


UID 1
精华 1
积分 13138
帖子 4658
威望 170
金钱 23293
慈善捐款(日元) 400
阅读权限 200
注册 2007-3-25
 
发表于 2008-5-29 11:36  资料  个人空间  短消息  加为好友 
rails的actionviews提供了友好的form builder类来简洁的动态生成表单元素,相比于简单的textfield,select helper有一些特别,传入参数较多,根据rails的api文档,对select的使用说明如下:

select(object, method, choices, options = {}, html_options = {})

object是指select选项所修饰的目标对象,method是目标对象的属性(方法)名, choices是一个数组,包含了选择项的‘name-value’值,options和html_options是选项。以person为例,person有性别gender属性,选项有[['男',0],['女',1]],用select来生成select元素的写法为:

<%=select :person,:gender,[['男',0],['女',1]], {:include_blank=>true,:selected=>0}%>

将生成

<select name="person[gender]">
<option value=""></option>
<option value="0" selected="selected">男</option>
<option value="1">女</option>
</select>

:include_blank=>true表示生成一项空选项。



另外还有 options_from_collection_for_select
和 option_group_form_selection_for_select
也很强大 不过option_group_form_collection_for_selelct 只支持两级 多级就不支持了


补充一下,如果选项数据从数据库中获取,通过调用查询返回数组的collect方法可以快捷组装成符合select要求的选项数据,比如以省份表provinces的数据为例

class Province < ActiveRecord::Base
def self.list_options
find(:all, :select=>"id,name", :order=>"name").collect{|p| [p.name,p.id]}
end
end

Province.list_options 返回[['北京',1],['埼玉',2],...]





天下熙熙,皆为利来;天下攘攘,皆为利往。
顶部
 



当前时区 GMT+9, 现在时间是 2008-8-30 14:18

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 日本看板 - Archiver