Ruby on Railsでアプリを作ってみよう⑦
投稿機能を作ってみよう
投稿機能は2段階に分けて解説していきます。
少し難しくなってきますが頑張ってください。
まずは投稿画面(new)の処理を作成していきましょう。
図1 遷移図
まずはルーティングを設定していきましょう
newアクションの行き先を指定します。
Rails.application.routes.draw do
get 'posts', to: 'posts#index'
get 'posts/new', to: 'posts#new' #newアクションのルーティング設定
end
rails routesコマンドを実行してルーティングを確認しましょう
newアクションのルーティングが設定されました。
次にコントローラーのアクションを定義しましょう。
ページを表示するだけなので中身は必要ありません。
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new #newアクションを定義
end
end
次はビューファイルを作っていきましょう。
ヘルパーメソッド
Railsではフォームを作る時にヘルパーメソッドを使い作っていきます。
主にビューでHTMLタグを出現させたりテキストを加工するために使用するメソッドで複数あります。
ヘルパーメソッドを使う利点は主に以下の2つになります。
①パスの指定やRubyの埋め込みなどの記述がシンプルになる
②セキュリティ上の問題を解消するため
今回使う2つのメソッドについて紹介します。
ヘルパーメソッド | 用途 |
---|---|
form_with | フォームの実装 |
link_to | リンクの実装 |
form_withメソッド
フォームを実装するためのヘルパーメソッドでHTMLのformタグの代わりに使用できます。
<%= form_with url: "/posts", method: :post, local: true do |form| %>
<%= form.text_field :comment %>
<%= form.submit '投稿する' %>
<% end %>
form_with~doまでの記述はオプションと呼ばれるもので設定が書かれています。
オプション名 | 説明 |
---|---|
url | 情報を送るパスを指定 |
method | リクエストのHTTPメソッドを指定(初期値は:postなのでpostの場合は省略可) |
local | リモート送信を無効にするかどうかを指定する。trueで無効になる |
do~endまでの記述はビューファイルに表示されるものを表していて
記述することで部品を追加できます。
フォーム部品 | 用途 |
---|---|
text_field | 1行のテキストボックス |
password_field | パスワード入力ボックス(テキストを*などに置き換えて表示) |
check_box | チェックボックス(複数選択可 |
radio_button | ラジオボタン(複数の中から1つのみ選択) |
submit | 送信ボタン |
この中ではsubmitをのぞいて引数にはname属性に当たる名前が入ります。
name属性の値がデータを扱う時のキーになります。
エディタを開きapp/views/postsディレクトリにnew.html.erbファイルを作ってください。
そして以下のコードを貼り付けてください。
<h1>新規投稿ページ</h1>
<%= form_with url: "/posts", method: :post, local: true do |form| %>
<%= form.text_field :comment %>
<%= form.submit '投稿する' %>
<% end %>
では次はトップページから投稿ページにアクセスする処理を作っていきます
link_toメソッド
リンクを作成するためのヘルパーメソッドでHTMLのaタグの代わりに使用できます。
<%= link_to 'リンクに表示する文字', 'パス', method: :HTTPメソッド %>
リンクに表示する文字は今回は新規投稿
今回表示したいのはnewの画面なので post#newの隣の/posts/newというパスを入力します。
そしてHTTPメソッドはVerbのところのgetになります。
<%= link_to '新規投稿', '/posts/new', method: :GET %>
このコードをトップページのビューであるapp/views/posts/index.html.erbに記入しましょう。
そしてhttp://localhost:3000/postsにアクセスし
新規投稿のリンクをクリックすると以下のページに遷移すれば成功です
次回はデータを作って保存する処理をやっていきましょう。
Author And Source
この問題について(Ruby on Railsでアプリを作ってみよう⑦), 我々は、より多くの情報をここで見つけました https://qiita.com/masakichi_eng/items/324f9a0523f0c984486b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .