Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rails 3 Helpers
Search
Johnson Liang
May 10, 2012
Programming
160
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
230
群眾協作的一些事—— 「自經區正反意見比較表」到 「臺北市長選舉承諾一覽表」到 「PPT 政治承諾追蹤網」
mrorz
0
510
Political Promise Tracker 政治承諾追蹤網 g0v-hackath12n 提案
mrorz
0
900
[Thesis Defense] SeeSS: Instant Change Impact Visualization for CSS developers
mrorz
0
280
g0v-hackath10n 提案 -- 2014 台北市長政見比較表
mrorz
0
310
網路及平台服務程式設計及零時政府 @ 創新網路技術推廣說明會
mrorz
0
210
g0v-hackath9n 提案 -- 自經區正反意見比較表
mrorz
0
150
CCSP 2014 期末成果展行前須知
mrorz
0
440
Google Analytics @ 102-2 CCSP
mrorz
0
360
Other Decks in Programming
See All in Programming
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
900
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
540
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
110
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
250
えっ!!コードを読まずに開発を!?
hananouchi
0
230
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
840
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
160
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
140
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
1.8k
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
230
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
500
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Amusing Abliteration
ianozsvald
1
240
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
410
Everyday Curiosity
cassininazir
0
260
Evolving SEO for Evolving Search Engines
ryanjones
0
240
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
A designer walks into a library…
pauljervisheath
211
24k
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