рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдХрд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрдп

рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ (рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рд░реЗрд▓реНрд╕) рдПрдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рд░реВрдмреА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдм рдкрд░ рднрд╛рд╖рд╛ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЛ рдкрдврд╝реЗрдВ, рднрд╛рд╖рд╛ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдм - рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд░реВрдмреА , рд░реЗрд▓реНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдм - рд░реЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдПрдЬрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ , рдФрд░ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВред



рдЖрдЗрдП рд░реВрдмреА рдФрд░ рд░реЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред





рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рди-рдХреНрд▓рд┐рдХ рд░реВрдмреА рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рд▓рд┐рдирдХреНрд╕ (рдЙрдмрдВрдЯреВ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реВрдмреА рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



  <code class = 'sh' lang = 'sh'> $> sudo apt-get install рд░реВрдмреА рд░реВрдмреАрдЬрдореЗ рд░реЗрдХ </ code> 




рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд░реВрдмреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ



  <code class = 'sh' lang = 'sh'> $> рдорд╛рдгрд┐рдХ -v
 рд░реВрдмреА 1.8.5 (2006-08-25) [i486-linux] </ code> 




рдФрд░ рд░реЗрд▓ рд▓рдЧрд╛рдУ:



  <code class = 'sh' lang = 'sh'> $> рдордгрд┐ рд╕реНрдерд╛рдкрд┐рдд рд░реЗрд▓-include-рдирд┐рд░реНрднрд░рддрд╛рдПрдБ
 $> рд░реЗрд▓ -рд╡реА
 рд░реЗрд▓ 1.2.3 </ рдХреЛрдб> 




рдЖрдкрдХреЛ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд░реВрдмреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд╣реИред

рдЖрдИрдбреАрдИ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкреНрдЯрд╛рдирд╛ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рд╕рд┐рд░реНрдл рдЧреНрд░рд╣рдг рдкрд╕рдВрдж рд╣реИ :)ред

рдореИрдВ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдЬреЛ рдХрд┐ рдЕрдкреНрдЯрд╛рдирд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред



рдЕрдм рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред





рд░реЗрд▓ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдВрдХрд╛рд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ:



  <code class = 'sh' lang = 'sh'> $> рд░реЗрд▓ ~ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ / рдЙрджрд╛рд╣рд░рдг </ code> 




рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдВрдХрд╛рд▓ (рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╕рд╛рде рдкрде рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛)ред рджреЗрдЦрддреЗ рд╣реИрдВ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред







рдпрд╣ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рд░реЗрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:



  <code class = 'sh' lang = 'sh'> $> рд░реВрдмреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рд╕рд░реНрд╡рд░
 рд░реВрдмреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░реВрдмреА рдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред </ code> 




http: // рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 3000 /



рдЗрд╕ рд▓рд┐рдВрдХ рдХреЛ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ "рд╡реЗрд▓рдХрдо рдЕрдЧреЗрди" рдкреЗрдЬ рджреЗрдЦреЗрдВ - рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред



рдХреМрди рд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИ?





рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рдирд╡ рдорд╛рд░реНрдХрдЕрдк (рд╡рд┐рдХреА, рдорд╛рд░реНрдХрдбрд╛рдЙрди, рдЯреЗрдХреНрд╕рдЯрд╛рдЗрд▓) рдХреЗ рд╕рд╛рде рдкрд╛рда рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдкрд╛рда рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдЪрдЖрд░рдмреА рдХреЗрд╡рд▓ рдПрдЪрдЯреАрдПрдордПрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ рд▓рд┐рдЦрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ рдЬрдм рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╛рда рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЗрд╕рд▓рд┐рдП, рдЖрд╡реЗрджрди HTML рдореЗрдВ рдкрд╛рда рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдЧрд╛!



рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкреГрд╖реНрда рд╣реЛрдВрдЧреЗ: рдкрд╣рд▓реЗ рдПрдХ рдкрд░ рдЖрдк рдкрд╛рда рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдорд┐рдд рдПрдЪрдЯреАрдПрдордПрд▓ рдХреЛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдм рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП :)



рд╣рдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред





рдЖрд▓рд╕реА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреЛрдб рд▓рд┐рдЦрдирд╛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред



рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ MVC рдкреИрдЯрд░реНрди рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрди рдЧрдпрд╛ рд╣реИред рд░реЗрд▓ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореЙрдбрд▓, рджреГрд╢реНрдп рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╣реЛрддреЗ рд╣реИрдВред



рдЕрдм рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЙрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдирд┐рдпрдорд┐рдд рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдкрд╣рд▓рд╛ рдЬреЛ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рд╡рд╣ generate



, рдпрд╣ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред



  <code class = 'sh' lang = 'sh'> рдПрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛рдПрдБ (рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде formatting_controller рдХрд╣рд╛):
 рдЗрдирдкреБрдЯ - рдкрд╛рда рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП  
 рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди - рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП

 $> рд░реВрдмреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдХрдВрдЯреНрд░реЛрд▓рд░ рдлреЙрд░рдореЗрдЯрд┐рдВрдЧ рдЗрдирдкреБрдЯ рдкреНрд░реАрд╡реНрдпреВ </ code> рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ 




рдирддреАрдЬрддрди, рд░реЗрд▓ рдиреЗ рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдм рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ:



  <code class = 'sh' lang = 'sh'> рдРрдк / рдирд┐рдпрдВрддреНрд░рдХ / formatting_controller.rb
 рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рд╡рд┐рдЪрд╛рд░ / рд╕реНрд╡рд░реВрдкрдг / input.rhtml
 рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рд╡рд┐рдЪрд╛рд░ / рд╕реНрд╡рд░реВрдкрдг / рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрдиред html </ code> 




рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдкреГрд╖реНрда рдХреИрд╕реЗ рджреЗрдЦреЗрдВ?



http: // localhost: 3000 / рд╕реНрд╡рд░реВрдкрдг / рдЗрдирдкреБрдЯ



http: // localhost: 3000 / рд╕реНрд╡рд░реВрдкрдг / рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди



рдРрд╕реЗ рдХреНрдпреЛрдВ?





рд░рд╛рдЙрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд░реЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ



  <code class = 'sh' lang = 'sh'> config / path.rb </ code> 




рдЕрдм рдореИрдВ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдм рдмрд╕ рдЗрди рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВ рдФрд░ рдореИрдВ рдЙрдирдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдБрдЧрд╛ред



  <code class = 'ruby' lang = 'ruby'> map.connect '':: рдХрдВрдЯреНрд░реЛрд▓рд░ => 'рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ' ,: рдПрдХреНрд╢рди => 'input' ,: рдХрдВрдбреАрд╢рди => {: method =>: get}
 map.preview '',: рдХрдВрдЯреНрд░реЛрд▓рд░ => 'рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ' ,: рдПрдХреНрд╢рди => 'рдкреНрд░реАрд╡реНрдпреВ',: рд╕реНрдерд┐рддрд┐рдпрд╛рдБ => {: рд╡рд┐рдзрд┐ =>: рдкреЛрд╕реНрдЯ} </ code> 




рдХрдиреЗрдХреНрдЯ рдФрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╡рд┐рдзрд┐ рдХреЙрд▓ рд╣реИрдВред рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкрде рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрде рдЦрд╛рд▓реА рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпреЗ рд╕рд╛рдЗрдЯ рдХреЗ рд░реВрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд╣реИрдВред рджреВрд╕рд░рд╛ рддрд░реНрдХ рдПрдХ рд╣реИрд╢ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреМрди рд╕реА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рддред рдпрд╣реА рд╣реИ, рдпрджрд┐ рд╕рд╛рдЗрдЯ рд░реВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЬреАрдИрдЯреА рдЖрддрд╛ рд╣реИ, рддреЛ рдЗрдирдкреБрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ HTTP POST, рддреЛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд░реЗрдВред



рдХрдиреЗрдХреНрдЯ рдХреЙрд▓ рдХреЛ рдкреНрд░реАрд╡реНрдпреВ рдХреЙрд▓рд┐рдВрдЧ рд╕реЗ рдЕрд▓рдЧ рдХреИрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдХрдиреЗрдХреНрдЯ рдПрдХ рдРрд╕рд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рд░рд╛рдЙрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред

рд░реВрдмреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдд рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд╡рд┐рдзрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, method_missing



рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ:







рдЕрдм рдЖрдкрдХреЛ public/index.html



рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рдкреЗрдЬ рдХреЗ рдмрдЬрд╛рдп input



рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдпрд╣ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред





рдЪрд▓рд┐рдП input.rhtml



рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдирд┐рдореНрди рдХреЛрдб рд╕реЗ рдмрджрд▓реЗрдВ:



  <code class = 'ruby' lang = 'ruby'> <% form_tag preview_url%>
 <% = text_area_tag: рдкрд╛рда, @ рд╕реНрд░реЛрдд, рдЖрдХрд╛рд░ => '120x25'%>
 <% = submit_tag 'рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди'%>
 <% рдЕрдВрдд%> </ рдХреЛрдб> 




рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ preview_url



рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлреЙрд░реНрдо рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рд╣реЛрдЧрд╛ред рдЕрдм рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВред



рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХрдкрдбрд╝рд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЯреЗрдХреНрд╕рдЯрд╛рдЗрд▓ рдФрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдЖрдкрдХреЛ RedCloth рдФрд░ Maruku рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



  <рдХреЛрдб> $> рд░рддреНрди рд░реЗрдбрдХреНрд▓реЛрде рдорд╛рд░реБрдХреБ </ рдХреЛрдб> рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ 




рдЕрдм рдЖрдкрдХреЛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╛рда рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдореИрдВ рд▓реЗрдЦ рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдмрд░ рдЗрд╕реЗ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ formatting_controller.rb



рдХреЛ рдЦреЛрд▓рдирд╛ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реБрдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдХреНрдпрд╛ рд╣реИ?







рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ set_supported_formats



рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрди рд╕рднреА рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

рд╢реБрд░реБрдЖрдд рдореЗрдВ @



рдЪрд┐рд╣реНрди рд╡рд╛рд▓реЗ рдЪрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЪрд░ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд, рдирд┐рдпрдВрддреНрд░рдХред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рджреГрд╢реНрдп рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд░ рдереЗ, рдЗрд╕рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЪрд░ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рджреГрд╢реНрдп рдореЗрдВ рд╡реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░реАрд╡реНрдпреВ.rhtml рдореЗрдВ preview.rhtml



рд╣рдо input.rhtml input.rhtml



рдХреЛ рднреА рд░реЗрдВрдбрд░ рдХрд░реЗрдВрдЧреЗ preview.rhtml



рддрд╛рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдбрд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЗрд╕рд▓рд┐рдП @supported_formats



рдХреЛ рджреЛрдиреЛрдВ рд╡реНрдпреВ рдореЗрдВ рдЬрд░реВрд░реА рд╣реЛрдЧрд╛, рдХреЛрдб рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред



рдпрд╣ input.rhtml



рдореЗрдВ рд╕реНрд╡рд░реВрдкрдг рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╕рдВрдж рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:



  <code> <% = select_tag: select_format, options_for_select (@supported_formats, @selected_format)%> </ code> 




рдФрд░ preview.rhtml



рд▓рд┐рдЦреЗрдВред preview.rhtml



, рдлрд┐рд░ рд╕реЗ, рдореИрдВ рдпрд╣рд╛рдВ рдХреЛрдб рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ (рдПрдХ div рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдкреНрд░реА :) рдХреЗ рдЕрдВрджрд░ рд╣реИред



рдкреГрд╖реНрда рдХреЛ рддреАрди рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:







рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣ рд╣реИ: рдкрд░рд┐рдгрд╛рдореА рдкреГрд╖реНрда "рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрдард┐рдд рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓" рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдкрд╛рда рдЗрдирдкреБрдЯ рдлрд╝реЙрд░реНрдо рдХреБрдЯрд┐рд▓ рджрд┐рдЦрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ doctype



, html



, head



, body



, рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдлрд╝реЙрд░реНрдо рдХреЛ рдХрдВрдШреА рдХрд░реЗрдВред



рд╣рдореЗрдВ рдПрдХ рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡реНрдпреВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд░реЗрд▓ рдореЗрдВ рдЗрд╕реЗ layout



рдХрд╣рд╛ рдЬрд╛рддрд╛ layout



ред

рдЖрдкрдХреЛ рдмрд╕ app/views/layouts



formatting.rhtml



рдЬреЛрдбрд╝рдирд╛ рд╣реИред



рдЕрдм рдЪрд▓рд┐рдП рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо - style.css



рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ public/stylesheets



рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред



рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрддреНрдо рд╣реЛ рдЪреБрдХрд╛ рд╣реИред





рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ, рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рд░реВрд╕реА рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд░реВрдмреА рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ :)



рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рднреНрд░рдорд┐рдд рд╡рд┐рд╡рд░рдг рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдЦ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдХрдИ рдкреНрд░рд╢реНрди рд╣реЛрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, form_for



рдпрд╛ options_for_select



рдХреНрдпрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:







рдЬреЛ рд▓реЛрдЧ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдкрд╛рда рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдЦ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред



рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?






All Articles