

indexから詳細画面のshowに飛ぶ際、habits/1のようなidを取得したURLにしたいのですが、  
URLがhabits/idのようになります。どこに間違いがあるのかわからずつまづいております。  
ペーペーな質問で、申し訳ございませんが、助けて頂けると幸甚です！

こちらがindex.htmlです

[code]

    <% @habits.each do |hb| %>
    <table class="habit_table">
    <tr>
        <td><%= link_to hb.routine, habit_path(:id) %></td>
        <td>継続記録<%= hb.days %>日</td>
        <td><%= link_to "Edit", edit_habit_path(:id) %></td>
        <td><%= link_to "Delete", habit_path(:id), method: :delete, data: {  confirm: "Are You Sure to Delete ?"} %></td>
    </tr>
    
[/code]

habits_controller

[code]

        class HabitsController < ApplicationController
    
     before_action :find_by_id, only:[:show, :edit, :update, :destroy]
    
    def index
    @habits = Habit.all
    end
    
    def show
    end
    
    private
    
    def find_by_id
    @habit = Habit.find(params[:id])
    end
    
    def habit_params
    params.require(:habit).permit!
    end
    
    end
    
[/code]

show.html

[code]

    <h2><%= @habit.routine %></h2>
    
    <table>
    <tr>
    <td>継続記録<%= @habit.days %>日</td>
    </tr>
    </table>
    
[/code]

rooting

[code]

    root 'habits#index'
    resources :habits
    
[/code]


CC BY-SA 3.0
2016-07-30T03:48:31.820
27959
2017-01-05T14:48:01.153
17332
question
ruby-on-rails
Couldn't find Habit with 'id'=id < ActiveRecord::RecordNotFound in HabitsController#showのエラー


一度、Railsガイドに目を通されることをお勧めします。

[1.2
コードからパスやURLを生成する](http://railsguides.jp/routing.html#%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89%E3%83%91%E3%82%B9%E3%82%84url%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B)

path に渡すのは、インスタンスですね。

[code]

    <td><%= link_to hb.routine, habit_path(hb) %></td>
    
[/code]


CC BY-SA 3.0
2016-07-30T05:52:55.130
27961
2016-07-30T05:52:55.130
7471
27959
answer