ビューの記述
コントローラー作成時にアクションを指定した場合
ビューは以下のHTMLファイルに準備されているので、その内容をHTMLで記述する。
app/views/controller_name/action_name.html.erb
あとからアクションを追加する場合
以下のファイルを作成し、その内容をHTMLで記述する。
app/views/controller_name/action_name.html.erb
各ビューに共通するビュー
各ビューのファイルはbodyタグの中だけを書くが、HTML全体の枠組みやHEAD要素など各ビューに共通の内容は以下のファイルに書かれている。
app/views/layouts/application.html.erb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html> <html> <head> <title>Bbs</title> <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <%= yield %> </body> </html> |
SCSS
コントローラーごとに以下のSCSSファイルでスタイル指定する。
app/assets/stylesheets/controller_name.scss
stylesheets
ディレクトリー下のSCSSファイルは全てのビューに適用される。
フォーム送信
HTML
HTMLのformタグの代わりにヘルパーメソッドが使える。
<%= form_tag("送信先URL") do %>
<% end %>
送信先URLは"/controller_name/action_name"
のような形で指定する。form_tag
メソッドはデータをPOST形式で送る。
routes.rb
また、POSTに対して指定したメソッドが起動するようにroutes.rb
でルーティングを設定する。
post '/controller_name/action_name', to:'controller_name#action_name'
controller_name_controller
コントローラーのファイルでで定義されているコントローラークラスにアクションメソッドを追加する。
1 2 3 4 |
class ControllerNameController < ApplicationController def action_name end end |
この段階でもsubmitボタンを押すとコンソールでデータが渡されているのが確認できる。