`
zcbbupt
  • 浏览: 60210 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转载:rails中的form表单总结

阅读更多
基础总结

表单开始标签:
<%= form_tag { :action => :save }, {:method => :post } %>
Use :multipart => true to define a Mime-Multipartform (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 }

<selectname="post[person_id]">
    <option></option>
    <option value="1"selected="selected">David</option>
    <optionvalue="2">Sam</option>
    <optionvalue="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,
                               rder => [:year, :month]

datetime_select "post", "written_on"


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

1.表单类型一

<div >
       <%= error_messages_for 'user'%>
       <fieldset>
         <legend>请输入用户信息</legend>
      <% form_for :user do |form| %>
        
           Name: <%= form.text_field :username, :size=>30     %>
        

        
           Password: <%= form.password_field :password, :size=> 30 %>
        

          
             ConfirmPassword: <%= form.password_field:password_confirmation, :size => 30%>
          

           <%= submit_tag "注册", : %>
           <% end %>
       </fieldset>
     </div>
此种是对象绑定的方式,通过表单,跟Model层的对象绑定,通常完成数据的增,改功能。

2.表单类型二

<div >
       <%= error_messages_for 'user'%>
       <fieldset>
         <legend>请输入用户信息</legend>
         <% form_tag do %>
        
           Name: <%= text_field_tag :username,params[:username], :size =>30     %>
        

        
           Password: <%= password_field_tag :password,params[:password], :size => 30%>
        

           <%= submit_tag "注册", : %>
           <% end %>
       </fieldset>
     </div>
此种主要是为了表单传值
form_for和model绑定,而form_tag不是
form_tag想传什么参数都行,没有约束
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics