рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, 18 рджрд┐рд╕рдВрдмрд░ рдХреЛ, рд░реЗрд▓
рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА
рд░рд┐рд▓реАрдЬ рд╣реБрдИ ред рдпрд╣ рдордЬреЗрджрд╛рд░ рд╣реИ рдХрд┐ 17 рджрд┐рд╕рдВрдмрд░
рдХреЛ рдПрдХ рдкреЛрд╕реНрдЯ рд╣реИ , рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдПред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрдЧрд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╕реЗ:
- рд╡рд╕рдВрдд рдХреЗ рд╕рд╛рде рддреЗрдЬрд╝ рдмреВрдЯ
- рдПрдкреАрдЖрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ, рд░рд╣рд╕реНрдпреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреА рдПрдХ рдХрд┐рд╕реНрдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣: config / mystery.yml
- рдИрдореЗрд▓ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди: рдПрдХреНрд╢рди рдореЗрд▓рд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди
- рдПрдХреНрд╢рди рдкреИрдХ рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░реА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
- рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП enum рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬреЛрдбрд╝рдирд╛
рд╕реНрдерд╛рдкрдирд╛
рд░реЗрд▓ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреАрдордд рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
gem install rails -v 4.1.0.beta1 rails new rails_beta_app
рд╣рдо рд╕рднреА рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрдВрдбрд▓ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк
рд╕рдорд╛рдирд╛рдВрддрд░ рдмреЙрд▓рд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рд╡рд╕рдВрдд
рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдХ рд░рддреНрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрд▓ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рдж, рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдХрд╣реАрдВ рдШреВрдорддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрди рд╕рднреА рдХрдорд╛рдВрдб рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рдЖрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд▓реЛрдбрд┐рдВрдЧ рд░реЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЪрд▓рд╛рдирд╛, рдХрдВрд╕реЛрд▓ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд░реАрдХреНрд╖рдгред рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЦрдмрд░ рдереА рдЦреБрдж рд░реЗрд▓ рдХреА рд╢реБрд░реБрдЖрддред рдЦреБрдж рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: рд░реЗрд▓; рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ; рд░реЗрд▓ рд╕реАред рдкреБрдирд░рд╛рд░рдВрдн рд▓рдЧрднрдЧ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╣реИ, рдЬреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред
config / secret.yml
рдЕрдм рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
Rails.application.secrets рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг config / secret.yml:
development: secret_key_base: '3b7cd727ee24e8444053437c36cc66c3' some_api_key: 'SOMEKEY'
рдПрдХреНрд╢рди рдкреИрдХ рд╡реЗрд░рд┐рдПрдВрдЯ
рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЕрдЧрд░ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЕрднреНрдпрд╛рд╡реЗрджрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг release_notes рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ):
before_action :set_variants def show respond_to do |format| format.html.tablet
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
app/views/projects/show.html.erb app/views/projects/show.html+tablet.erb app/views/projects/show.html+phone.erb
рдПрдХреНрд╢рди рдореЗрд▓рд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди
рдЕрдм рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреБрдж рдХреЛ рдЕрдХреЗрд▓реЗ рднреЗрдЬрд╛ рд╣реЛ, рдФрд░ рд╕рднреА рд╢рд╛рдВрдд рд╡рд░рд┐рд╖реНрда рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?)ред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрд▓рд░ рд╣реИрдВ:
class NotifierPreview < ActionMailer::Preview def welcome Notifier.welcome(User.first) end end
рддрдм рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди
рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛: 3000 / рд░реЗрд▓ / рдореЗрд▓рд░реНрд╕ / рдиреЛрдЯрд┐рдлрд╝рд╛рдпрд░ / рд╡реЗрд▓рдХрдоред
рд╕рдХреНрд░рд┐рдп рд░рд┐рдХреЙрд░реНрдб рдПрдирдо
Example_notes рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реА рдЖрдБрдЦ рдХреЛ рдмрд╣реБрдд рднрд╛рддрд╛ рд╣реИ:
рдорд░рд╣рдо рдореЗрдВ рдЙрдбрд╝реЛ: рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╖рдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд▓реЗрдЦ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддреГрдд рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдбреАрдПрдЪрдПрдЪ рдиреЗ рд╣рдореЗрдВ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд░реЗрд▓реНрд╕ 4.1.0 рдмреАрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдмреЗрд╕рдХреИрдВрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЕрдкрдиреА рдЫреЛрдЯреА рдирд┐рдЬреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред