rails中的form表单总结

Rails中两种不同的表单处理方式

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想传什么参数都行,没有约束

==================[以下内容转自网络]===================================

表单开始标签 :
<%= 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,
                                 :order => [:year, :month]

datetime_select "post", "written_on"

 

 

From:

http://hi.baidu.com/kenrome/blog/item/33d15560e36669dc8cb10dd6.html/cmtid/0e2b30db78182d6cd1164eb4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值