Ruby on Rails - แบบฟอร์ม HTML

แบบฟอร์ม

ในการสร้างแท็กฟอร์มด้วยการดำเนินการที่ระบุและด้วยคำขอ POST ให้ใช้ไวยากรณ์ต่อไปนี้ -

<%= form_tag :action => 'update', :id => @some_object %>

<%= form_tag( { :action => :save, }, { :method => :post }) %>

ใช้: multipart => true เพื่อกำหนดรูปแบบ MIME-multipart (สำหรับการอัปโหลดไฟล์)

<%= form_tag( {:action => 'upload'}, :multipart => true ) %>

อัปโหลดไฟล์

กำหนดรูปแบบหลายส่วนในมุมมองของคุณ -

<%= form_tag( { :action => 'upload' }, :multipart => true ) %>
   Upload file: <%= file_field( "form", "file" ) %>
   <br />
   
   <%= submit_tag( "Upload file" ) %>
<%= end_form_tag %>

จัดการการอัปโหลดในคอนโทรลเลอร์ -

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" />

ปุ่ม Checkbox

ในการสร้างปุ่ม Checkbox ให้ใช้ไวยากรณ์ต่อไปนี้ -

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

ตัวเลือก

ในการสร้างรายการ dropdopwn ให้ใช้ไวยากรณ์ต่อไปนี้ -

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

แท็กแบบฟอร์มสิ้นสุด

ใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างแท็ก </form> -

<%= end_form_tag %>
รางอ้างอิง-guide.htm

Language