Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rails 3 Helpers
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Johnson Liang
May 10, 2012
Programming
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rails 3 Helpers
CCSP 2012 Spring slides.
Johnson Liang
May 10, 2012
More Decks by Johnson Liang
See All by Johnson Liang
Political Promise Tracker 政治承諾追蹤網 g0v-hackath14n 提案
mrorz
0
250
群眾協作的一些事—— 「自經區正反意見比較表」到 「臺北市長選舉承諾一覽表」到 「PPT 政治承諾追蹤網」
mrorz
0
550
Political Promise Tracker 政治承諾追蹤網 g0v-hackath12n 提案
mrorz
0
940
[Thesis Defense] SeeSS: Instant Change Impact Visualization for CSS developers
mrorz
0
290
g0v-hackath10n 提案 -- 2014 台北市長政見比較表
mrorz
0
310
網路及平台服務程式設計及零時政府 @ 創新網路技術推廣說明會
mrorz
0
230
g0v-hackath9n 提案 -- 自經區正反意見比較表
mrorz
0
170
CCSP 2014 期末成果展行前須知
mrorz
0
470
Google Analytics @ 102-2 CCSP
mrorz
0
380
Other Decks in Programming
See All in Programming
App Intentsのビルドプロセスを支える技術
kntkymt
0
460
Heart of Swift Concurrency
koher
0
1k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
390
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
190
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
180
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
160
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
240
アクセシビリティから考える情報設計
high_g_engineer
0
420
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
320
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
320
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
350
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Un-Boring Meetings
codingconduct
0
430
Building the Perfect Custom Keyboard
takai
2
890
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
The Limits of Empathy - UXLibs8
cassininazir
1
690
It's Worth the Effort
3n
188
29k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Building an army of robots
kneath
307
46k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
740
Transcript
Rails Helpers Johnson Liang / MrOrz
咦?
咦?
咦? Helpers
Helper • 輔助方法(函式) • 常用的 ▫ link_to, stylesheet_link_tag, auto_link, ……
• Named Helper ▫ posts_path, edit_post_url(:id) • Form Helper ▫ form_for, text_field, ……
http://ihower.tw/rails3/actionview-helpers.html http://blog.xdite.net/posts/2011/12/08/how-to-design-helpers/ http://blog.xdite.net/posts/2011/12/09/how-to-design-helpers-2/ http://blog.xdite.net/posts/2012/01/15/how-to-design-helper-3/
以下的 helper…… • 只能在 view 裡頭呼叫 • 在 rails console
裡使用,前面需加上 helper. 1.9.2-p290 :005 > helper.link_to 'Google', 'http://google.com', :target=>’_blank’ => "<a href=\"http://google.com\" target=\"_blank\">Google</a>"
link_to(*args, &block) • 語法 • 範例 http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to Named helper, covered
later
link_to(*args, &block) • 語法 • 範例 http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to Handled by jquery.ujs.js
(the jquery-rails gem)
javascript_include_tag(*sources) stylesheet_link_tag(*sources) • js 檔放 app/assets/javascripts • css 檔放 app/assets/stylesheets
http://goo.gl/J30Kg http://goo.gl/OoluN
image_tag(source, options = {}) • 影像檔放 app/assets/images http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html
javascript_include_tag stylesheet_link_tag image_tag WHY?
javascript_include_tag stylesheet_link_tag image_tag 以後把 asset 傳到不同 server,只要改一行: Production mode 時自動壓縮:
truncate(text, options = {}) simple_format(text, html_options={}, options={}) • 自動加上…… •
清除有害 html 標籤 http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html
http://ihower.tw/rails3/routing.html
*_url, *_path • 可以在 controller 和 view 裡頭呼叫 • 在
rails console 裡使用,前面需加上 app. 1.9.2-p290 :019 > app.posts_path => "/posts" 1.9.2-p290 :020 > app.posts_url => "http://www.example.com/posts"
Named Routes rake routes Route Name HTTP verb Matches all
if empty URL pattern to match Routing parameters
Named Helper • <ROUTE NAME>_path 與 <ROUTE NAME>_url • 傳參數
posts_path => "/posts" posts_url => "http://www.example.com/posts" edit_post_comment_path :id=>4, :post_id=>2 => "/posts/2/comments/4/edit"
http://ihower.tw/rails3/actionview-helpers.html http://guides.rubyonrails.org/form_helpers.html
有兩種 form_tag button_tag check_box_tag field_set_tag file_field_tag hidden_field_tag label_tag password_field_tag radio_button_tag
search_field_tag submit_tag text_area_tag text_field_tag FormHelper FormTagHelper form_for check_box file_field hidden_field label password_field radio_button search_field text_area text_field
有兩種 FormHelper FormTagHelper • 包在 form_for 裡 • CSRF 防禦
• 綁資料庫物件 • 自動處理 name 屬性 • 包在 form_tag 裡 • CSRF 防禦 • 單純產生 tag • 也能用在 form_for 裡 FormHelper FormHelper 另一種寫法 FormTagHelper 得自己指定name 屬性
.html.erb .html 舊 IE UTF-8 bug CSRF 防禦 讓你
style 它 自動決定網址 物件相關的放進 hash /people"
.html 送出 params[] params # => { :utf8 =>
“✔ ”, :authenticity_token => …, :person => { :first_name => …, :last_name => …, :biography => …, (:admin => “true”) }, :commit => “Create Post”, :controller => “person” } /people" 所以我們可以 @person = Person.new(params[:person]) 來自動填入欄位! (前提是 attr_accessible 要設好)
FormHelper 的神奇引數 若 @post 剛被 new 出來 (沒有 id 屬性)
若 @post 是從資料庫撈出來的 依 @post 不同,會擇一展開為下列 指定FormHelper 的 name 為 post[xxx] Named Helper 幫你加的 html 屬性
References • 常用的 Helper ▫ http://ihower.tw/rails3/actionview-helpers.html ▫ http://blog.xdite.net/posts/2011/12/08/how-to-design-helpers/ ▫ http://blog.xdite.net/posts/2011/12/09/how-to-design-helpers-2/
▫ http://blog.xdite.net/posts/2012/01/15/how-to-design-helper-3/ • Form Helpers ▫ http://ihower.tw/rails3/actionview-helpers.html ▫ http://guides.rubyonrails.org/form_helpers.html • Named Route Helpers ▫ http://ihower.tw/rails3/routing.html • Testing Helpers Under Rails Console ▫ http://stackoverflow.com/questions/151030/how-do-i-call-controller-view- methods-from-the-console-in-rails ▫ http://stackoverflow.com/questions/4400888/rails-calling-a-controller-action- from-the-consolehttp://stackoverflow.com/questions/2846247/rails-check- output-of-path-helper-from-console