
рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд░реВрдмреА рдХреЗ рд╕рд╛рде рд░реЗрд▓ рдкрд░ рдмреЗрд╣рддрд░, рддреЗрдЬрд╝ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреА, рд╕рд╛рде рд╣реА рдЖрдкрдХреЛ рдмрд╣реБрдд рдХреБрдЫ рдХрдорд╛рдиреЗ рдФрд░ рдмреЗрд╣рддрд░ рдХрдкрдбрд╝реЗ рдкрд╣рдирдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреАред
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 :: рдПрдХреАрдХрд░рдг :: RequestHelpers2. рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕рд╣рд╛рдпрдХ
рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде, рд╣рдо рджреЛрдиреЛрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рд░реЗрд▓ рд╕рд╣рд╛рдпрдХреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
>>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 =>
рдареАрдХ рд╣реИ, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рд╣рд╛рдпрдХ рдкрд╛рд░реНрдореНрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?
def do_you_want_meat params['meat'] ? ' , !' : ', , ' end
рдПрдХ рдЫреЛрдЯреА рд╕реА рд╣реИрдХ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:
>>helper.controller = OpenStruct.new( { :params => {} } ) =>
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-do37signals.com/svn/posts/3176-three-quick-rails-console-tipsrubyreloaded.com/trickshotsstackoverflow.com/questions/151030/how-do-i-call-controller-view-methods-from-the-console-in-rails