iT邦幫忙

DAY 18
0

Ruby on Rails 實戰聖經 - 初心者的30天學習記錄系列 第 18

Ruby on Rails實戰聖經 (18) - Action View Helpers方法

  • 分享至 

  • xImage
  •  

在Rails中,Action View的Helpers方法指的是在用在樣版(Template)中的輔助方法,用來將資料轉化為可輸出的HTML格式。例如在之前用到的link_to、form_for都是Helpers。

表單輔助方法
Rails在處理表單上主要可方為兩個類型。
第一個類型是綁定Model物件的form_for方法,它的好處在於透過傳入Model物件,可以在修改的時候自動幫你將預設值帶入。
例如:

<%= form_for @guest do |g| %>
<%= g.text_field :title %>
<%= g.submit %>
<% end %>

另一種則是不需綁定Model的表單,則可使用form_tag方法,例如:

<%= form_tag "/search" do %>
<%= text_field_tag :keyword %>
<%= submit_tag %>
<% end %>

form_tag和form_for類似,但使用上不需要綁定既有Model的欄位,也不需使用Block區塊變數|g|,其中的欄位Helper需要多加_tag結尾。

幾個常用的表單欄位輔助方法:
text_field
text_area
radio_button
check_box
select
select_date, select_datetime
submit

如何處理Model中不存在的屬性
使用form_for時,欄位必須對應Model存在的欄位,但如果Model沒有這個欄位的話,則必須要在Model上加上存取方法,例如:

class Guest < ActiveRecord::Base
#...
def custom_field
# 根據其他屬性的值或條件,來決定這個欄位的值
end

def custom_field=(value)
# 根據value,來調整其他屬性的值
end
end

這樣就可以在form_for裡使用custom_field了。

<%= form_for @guest do |g| %>
<%= f.text_field :custom_field %>
<%= f.submit %>
<% end %>

上一篇
Ruby on Rails (17) - Blocks、Procs
下一篇
Ruby on Rails (19) - 在普悠馬上學Ruby
系列文
Ruby on Rails 實戰聖經 - 初心者的30天學習記錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言