рд╣рдм рдкрд░ рднрд╛рд╖рд╛ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЛ рдкрдврд╝реЗрдВ, рднрд╛рд╖рд╛ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдм - рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд░реВрдмреА , рд░реЗрд▓реНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдм - рд░реЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдПрдЬрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ , рдФрд░ рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВред
рдЖрдЗрдП рд░реВрдмреА рдФрд░ рд░реЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред
рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рди-рдХреНрд▓рд┐рдХ рд░реВрдмреА рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд▓рд┐рдирдХреНрд╕ (рдЙрдмрдВрдЯреВ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░реВрдмреА рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<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>
рдЙрджрд╛рд╣рд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдВрдХрд╛рд▓ (рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╕рд╛рде рдкрде рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛)ред рджреЗрдЦрддреЗ рд╣реИрдВ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдпрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╣реЛрдЧрд╛: рдореЙрдбрд▓, рд╡рд┐рдЪрд╛рд░ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ
- рдШрдЯрдХ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд░рд╛рд╕рдд рд╣реИ, рдЕрдм рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рд╡рд┐рдиреНрдпрд╛рд╕ - рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдиреНрдпрд╛рд╕: рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рд░реВрдЪрд┐ рд▓реЗрдВрдЧреЗ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП URL рд░реВрдЯрд┐рдВрдЧ
- рдбреАрдмреА - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдпрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- рдбреЙрдХреНрдЯрд░ - рдкреНрд░рд▓реЗрдЦрди, рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди
- lib - рдпрд╣рд╛рдБ рдЖрдк рдЙрдкрдпреЛрдЧреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХреЛрдб рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ
- рд▓реЙрдЧ - рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓реЙрдЧ
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ - рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░, рдпрд╣рд╛рдБ рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдирд┐рд╣рд┐рдд рд╣реИ
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ
- рдкрд░реАрдХреНрд╖рдг - рдкрд░реАрдХреНрд╖рдг
- tmp - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдФрд░ рдкреАрдЖрдИрдбреА тАЛтАЛрдлрд╛рдЗрд▓реЗрдВ рдпрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ
- рд╡рд┐рдХреНрд░реЗрддрд╛ - рдпрд╣рд╛рдБ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реЛрдВрдЧреЗ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдпрд╣ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рд░реЗрд▓ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:
<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
рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ:
- рд░рд╛рдЙрдЯрд░ рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╣рдордиреЗ рдХрдиреЗрдХреНрдЯ рдХрд╣рд╛ рдерд╛
-
preview_url
url рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ url рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЕрдм рдЖрдкрдХреЛ
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
рдХреЛ рдЦреЛрд▓рдирд╛ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реБрдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдХреНрдпрд╛ рд╣реИ?
-
require
- рдЖрд╡рд╢реНрдпрдХ рд░рддреНрдиреЛрдВ (рдореЙрдбреНрдпреВрд▓, рдкреИрдХреЗрдЬ) рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ -
set_supported_formats
- рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдлрд┐рд▓реНрдЯрд░set_supported_formats
рд▓рд┐рдПset_supported_formats
рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рддрд╛ рд╣реИ -
params
- рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрд╢
рдХреЗ рд▓рд┐рдП рдХрд┐рд╕
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 рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдкреНрд░реА :) рдХреЗ рдЕрдВрджрд░ рд╣реИред
рдкреГрд╖реНрда рдХреЛ рддреАрди рдЦрдВрдбреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
-
preview
- рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ -
source
- рд╕реЛрд░реНрд╕ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо -
formated_text
- рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб
рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рд╡рд░рдг рдпрд╣ рд╣реИ: рдкрд░рд┐рдгрд╛рдореА рдкреГрд╖реНрда "рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрдард┐рдд рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓" рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдкрд╛рда рдЗрдирдкреБрдЯ рдлрд╝реЙрд░реНрдо рдХреБрдЯрд┐рд▓ рджрд┐рдЦрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ
doctype
,
html
,
head
,
body
, рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рдлрд╝реЙрд░реНрдо рдХреЛ рдХрдВрдШреА рдХрд░реЗрдВред
рд╣рдореЗрдВ рдПрдХ рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡реНрдпреВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд░реЗрд▓ рдореЗрдВ рдЗрд╕реЗ
layout
рдХрд╣рд╛ рдЬрд╛рддрд╛
layout
ред
рдЖрдкрдХреЛ рдмрд╕
app/views/layouts
formatting.rhtml
рдЬреЛрдбрд╝рдирд╛ рд╣реИред
рдЕрдм рдЪрд▓рд┐рдП рдЗрдирдкреБрдЯ рдлреЙрд░реНрдо -
style.css
рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ
public/stylesheets
рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдкрд╣рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрддреНрдо рд╣реЛ рдЪреБрдХрд╛ рд╣реИред
рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ, рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВрдиреЗ рд░реВрд╕реА рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд░реВрдмреА рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ :)
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рднреНрд░рдорд┐рдд рд╡рд┐рд╡рд░рдг рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдЦ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдХрдИ рдкреНрд░рд╢реНрди рд╣реЛрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
form_for
рдпрд╛
options_for_select
рдХреНрдпрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
- рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдкрд░рд┐рдЪрд┐рдд рд╢рдмреНрдж рд╕реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ - рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫреА рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЦреЛрдЬ рдореЗрдВ рдЗрд╕ рд╢рдмреНрдж рдХреЛ рд▓рд┐рдЦреЗрдВ
- рдпрджрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд░реЗрд▓ рдкрд░ рдПрдХ рдХрд┐рддрд╛рдм рдкрдврд╝реЗрдВ (рдпрд╣ рдЗрдореНрдпреВрд▓реЗрдЯ рдореЗрдВ рд╣реИ) рдФрд░ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗрдВ
рдЬреЛ рд▓реЛрдЧ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдкрд╛рда рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдЦ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
- рдореБрдЦреНрдп рдЪреАрдЬ рдЬреЛ рдореИрдВрдиреЗ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИ рд╡рд╣ рдкрд░реАрдХреНрд╖рдг рд╣реИ, рд╣рдо рдЙрдирдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ
- рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рдкреГрд╖реНрда рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВ, рдПрдХ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ AJAX рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд░реЗрд▓рд┐рдВрдЧ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред
- рдореИрдВ рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЙрди рд╕рднреА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдореГрдд рд╣реЛ рдЧрдпрд╛, рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдм рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реИ, рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдХреНрд▓рд┐рдХ рди рдХрд░реВрдВ
- рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдореИрдВ рд╕реНрдкреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ, рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреМрди рд╕реА рд╕реЗрд╡рд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд░реНрддрдиреА рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреА рд╣реИ, рдпрд╣ рд░реЗрд▓ рдХреЛ рдлрд╛рд╕реНрдЯ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ =)
- рджреВрд╕рд░реЗ рд▓реЗрдЦ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдЙрдирдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдмреЛрдЭ рдмрди рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд░рдмрд╛рдж рд╣реИ :), рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ REST рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд░реЗрд▓ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдореИрдВрдиреЗ AjaxScaffold рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк ActiveScaffold рдкрд░ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдХреНрд╖рдг рддрдХ рд╕рд╣-рд▓реЗрдЦрдХ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рд╣рдо рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рдВрдпреБрдХреНрдд рд╕рдВрдкрд╛рджрди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреИрд╕реЗ рд░реЗрд▓ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдЦреЛрдВ рдХреЛ рдмрд╣реБ-рд╕рдВрд╕реНрдХрд░рдг рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдЦреБрдж рдХреЛ рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВред