Sei sulla pagina 1di 25

Rails Helpers

Johnson Liang / MrOrz

Helpers

Helper

link_to, stylesheet_link_tag, auto_link, posts_path, edit_post_url(:id) form_for, text_field,

Named Helper Form 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/

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)

Named helper, covered later

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

link_to(*args, &block)

Handled by jquery.ujs.js (the jquery-rails gem)

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

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_for check_box file_field hidden_field label password_field radio_button search_field text_area text_field 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


FormHelper
form_for CSRF name FormHelper

FormTagHelper
form_tag CSRF tag form_for

FormHelper

FormTagHelper

name

.html.erb .html

/people"

style

IE UTF-8 bug

CSRF hash

.html params[]
/people"

params # => { :utf8 => , :authenticity_token => , :person => { :first_name => , :last_name => , :biography => , (:admin => true) }, :commit => Create Post, :controller => person }

@person = Person.new(params[:person])

attr_accessible

FormHelper

@post @post new id

@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

Named Route Helpers

http://ihower.tw/rails3/actionview-helpers.html http://guides.rubyonrails.org/form_helpers.html http://ihower.tw/rails3/routing.html http://stackoverflow.com/questions/151030/how-do-i-call-controller-viewmethods-from-the-console-in-rails http://stackoverflow.com/questions/4400888/rails-calling-a-controller-actionfrom-the-consolehttp://stackoverflow.com/questions/2846247/rails-checkoutput-of-path-helper-from-console

Testing Helpers Under Rails Console

Potrebbero piacerti anche