パスの書き方
<%= link_to "目標設定", new_target_path %>
<%= link_to "目標詳細", target_path(@target) %>
<%= link_to "目標変更", edit_target_path(@target) %>
こんなふうに書くとエラーがでる・・・
記述は間違えていない。
<% @target.each do |target| %>
<%= link_to "目標設定", new_target_path %>
<%= link_to "目標詳細", target_path(target.id) %>
<%= link_to "目標変更", edit_target_path(target.id) %>
<% end %>
これだとエラーでないけど、投稿した数分、目標設定、目標詳細、目標変更が記述される・・・。
<%= link_to "目標設定", new_target_path %>
<%= link_to "目標詳細", target_path(@target) %>
<%= link_to "目標変更", edit_target_path(@target) %>
どうにかこれで記述したい。
def top
@target = Target.all
end
ターゲットコントローラーの記述を変更
def top
@target = Target.find_by(user_id: current_user.id)
end
find_byを使用
これで解決した。
findとfind_byの違い
find
findは「id」によってデータを取得します
find_by
特定の条件にマッチした最初のレコードを検索します。
取得できるデータは1件のみに可能