0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsで架空のCafeのHPを作ってみよう!【4日目】

Posted at

#概要
基本Railsの記法に則り書いていきます!
1から全ての説明ではなく
その中であれ?どうやるの?と
疑問に思った点や実装に困った箇所を
ピックアップして紹介していきます♩

#設定と準備
・Rails
・HTML
・CSS
・Javascript(jQuery)

↑上記の言語とフレームワークを使い
架空(自分で考えたテキトーなもの)のCafeの
HPを作っていこうと思います!

#4日目の作業内容:round_pushpin:
・トップページから他のページへの遷移(リンク)

#4日目の躓いた箇所:zap:
7つのアクション以外を使った
link_toのパスの指定はどうやったらいいの???

今回はトップページ
(views/sample/index.html.erb)から
7つのアクションではない自分でファイルを作った別のページ(views/sample/form.html.erb)に
遷移させると仮定!

index.html.erb

<body>

  <link_to "formへ遷移", sample/form  />

</body>

index.html.erb

<body>

  <link_to "formへ遷移", sample_form_path  />

</body>

こんな書き方かな...とやってみたが全然ダメでした。

#結論
自分でコントローラーにアクションを定義して
それをroutes.rbで使えるようにする必要があった!

まずはアクションを指定!
views/sample/form.html.erbに遷移したいので
sampleコントローラーにformアクションを作ります。

controllers/samples_controller.erb

class SamplesController < ApplicationController

  def index
  end

  def form
  end

end

indexはトップページへの遷移で作ったもので
その下にformアクションを追加します。

そしたらroutes.rbに自分で作ったアクションを
使えるように追記していきます。

routes.rb

Rails.application.routes.draw do
  root 'samples#index'
  resources :samples, only: [:index] do
    collection do
      get 'form'
    end
  end
end

resourcesに入れ子構造にする形で
collectionを使い自分の作ったformというアクションを
使えるようにしました。

上記ではcollectionですがparamsとして(:id)が必要な場合
特定の情報が必要になる場合などはnumberにしてください。

これで自分の作ったアクションが使えるようになったので
コマンド rails routesでパスの確認!

 form_samples GET    /homes/contact(.:format)                                                                 samples#form

このように自分で作ったアクションにしっかりと
パスが存在するのを確認したらlink_toのパスに指定!

index.html.erb

<body>

  <link_to "formへ遷移", form_samples_path  />

</body>

これで無事自分の作ったviewに自分の作ったアクションを使い
遷移させることに成功。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?