рдХреБрдЫ рд░реЗрд▓ рдХреА рдЪрд╛рд▓


рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд░реВрдмреА рдХреЗ рд╕рд╛рде рд░реЗрд▓ рдкрд░ рдмреЗрд╣рддрд░, рддреЗрдЬрд╝ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреА, рд╕рд╛рде рд╣реА рдЖрдкрдХреЛ рдмрд╣реБрдд рдХреБрдЫ рдХрдорд╛рдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рдХрдкрдбрд╝реЗ рдкрд╣рдирдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреАред

1. рдХрдВрд╕реЛрд▓ рдореЗрдВ рд░реВрдЯреНрд╕ рдФрд░ рдХреНрд╡реЗрд╢реНрдЪрди

рд╣рдо рд░реЗрд▓ рдХрдВрд╕реЛрд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдРрдк рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ: рдЕрдм рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ

>> app.class => ActionDispatch::Integration::Session 


рдпрд╣ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реАрдзреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 >> app.pages_path => "/pages" >>app.page_path(@page) => "/pages/345" 


рдпрд╛ рд╣рдорд╛рд░реЗ рд░реЗрд▓ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:

 >> app.get("/pages/345") => 200 >> app.response.body => "<!DOCTYPE html PUBLIC \'-//W3C//DTD XHTML 1.0 Transitional//EN\'\n ..." 


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ActionDispatch :: рдПрдХреАрдХрд░рдг :: рд╕рддреНрд░ рдФрд░ рдпрд╣рд╛рдВ: ActionDispatch :: рдПрдХреАрдХрд░рдг :: RequestHelpers

2. рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рд╣рд╛рдпрдХ

рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде, рд╣рдо рджреЛрдиреЛрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЗрд▓ рд╕рд╣рд╛рдпрдХреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:

 >>helper.mail_to "me@et.you" => "<a href=\"mailto:me@et.you\">me@et.you</a> >>helper.pluralize(2,'bug') => "2 bugs" 


рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП:

 def give_me_blog_link <a href='myblog.com'>Blog</a> end 


 >> helper.give_me_blog_link => "<a href='myblog.com'>Blog</a> 


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд░реЗрдВ рдЬрдм рд╣рдорд╛рд░реЗ рд╕рд╣рд╛рдпрдХ рдЙрджрд╛рд╣рд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ) рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

 def os_adviser if @client.geek? 'free bsd' elsif @client.blond? 'mac os' else 'windows' end end 


рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ # inst_variable_set

 >> helper.instance_variable_set :@client, Client.first => #<Client id: 3034, ... >> helper.os_adviser => "windows" 


рдареАрдХ рд╣реИ, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рд╣рд╛рдпрдХ рдкрд╛рд░реНрдореНрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?

 def do_you_want_meat params['meat'] ? ' ,   !' : ', ,   ' end 


рдПрдХ рдЫреЛрдЯреА рд╕реА рд╣реИрдХ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:

 >>helper.controller = OpenStruct.new( { :params => {} } ) => #<OpenStruct params={}> >>helper.do_you_want_meat => ', ,   ' >>helper.controller = OpenStruct.new( { :params => { :meat => true } } ) => #<OpenStruct params={:meat=>true}> >>helper.do_you_want_meat => ' ,   !' 


3. рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди


рдпрджрд┐ рдЖрдк рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЧрд▓рддреА рд╕реЗ рдбреЗрдЯрд╛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХрд╛ рдЦрддрд░рд╛ рд╣реИред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк --sandbox рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдХреЗ рд▓реЙрдиреНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 >>rails r 'puts User.last.name' => 'Fedor' >>rails c >>user = User.last >>user.name = "Petr" >>user.save >>user.name => "Petr" >>exit >>rails r 'puts User.last.name' => 'Fedor' 


4. рдХреБрдВрдЬреА рд╕реЗ рд╣реИрд╢ рд╕реЗ рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓рдирд╛


рд╕реВрдЪреАрдмрджреНрдз рдЖрдЗрдЯрдо рдХреЛ рд╣реИрд╢ рд╕реЗ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ

 >>options = {:one => 1, :two => 2, :three => 3, :four => 4} =>{:one => 1, :two => 2, :three => 3, :four => 4} >>options.except!(:one, :two) =>{:three => 3, :four => 4} 


5. рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ


рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

 >>string = 'corvalol' >>string =~ /lol/ => 5 #       


рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░

 >>string = 'corvalol' >>string['lol'] => 'lol' #   ,   


рдпреЗ рдХреЗрд╡рд▓ 5 рдЪрд┐рдкреНрд╕ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧреЗ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред

confreaks.com/videos/889-railsconf2012-ten-things-you-didn-t-know-rails-could-do
37signals.com/svn/posts/3176-three-quick-rails-console-tips
rubyreloaded.com/trickshots
stackoverflow.com/questions/151030/how-do-i-call-controller-view-methods-from-the-console-in-rails

Source: https://habr.com/ru/post/In146441/


All Articles