Ruby on Railsでアプリを作ってみよう⑧
データを作って保存する処理を行っていきます。
テーブルにデータを保存するため、createアクションを使用します。
まずはルーティングを設定していきましょう
Rails.application.routes.draw do
get 'posts', to: 'posts#index'
get 'posts/new', to: 'posts#new'
post 'posts', to: 'posts#create' #クリエイトアクションへのルーティング設定
end
rails routes コマンドでルーティング確認
コントローラーにアクションを設定しよう
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new
end
def create
end
end
ビューファイルを作りましょう
app/views/postsディレクトリに、create.html.erbを作り
トップページに戻るリンクを記述しましょう。
<h1>投稿完了</h1>
<%= link_to 'トップページに戻る', '/posts' %>
ブラウザからフォームを送信した時の流れを見てみましょう。
サーバーに情報を渡すためにフォームにパラメーターというものを含ませることができます。
params
送られてきた情報をハッシュのような形で格納したものです。
今回はtext_fieldの後に記載されたキーでparamsに格納されています
フォームで入力された情報の値は、params[:キー名]として取り出すことができます。
『comment』というキーで『ありがとう』というデータを送信すると
paramsに{comment: ありがとう}といったハッシュ構造で格納されます。
コントローラーでparams[:comment]とすると『ありがとう』というデータが取れます。
createメソッドを使ってアクションに保存の処理を書く
createメソッドはActiveRecordメソッドのひとつでデータを作って保存できます。
モデル.create(カラム名: 値)
今回はpostsテーブルのcommentというカラム名に、params[:content]の情報を保存します
Post.create(content: params[:content])
postsコントローラーに追記しましょう。
class PostsController < ApplicationController
def index
@posts = Post.all
end
def new
end
def create
Post.create(comment: params[:comment])
end
end
以上です。
Author And Source
この問題について(Ruby on Railsでアプリを作ってみよう⑧), 我々は、より多くの情報をここで見つけました https://qiita.com/masakichi_eng/items/dec307feabef62d681b1著者帰属:元の著者の情報は、元の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 .