您的位置:首页 > 大数据 > 人工智能

rails中的form表单总结

2014-03-13 16:02 232 查看
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="}" />

隐藏框:

<%= 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]">

        }

      </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"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: