質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

ルーティング バグ

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 781

score 87

現在、ruby on rails でウェブアプリを作成しております。
以下の現状に悩まされております。
(当方初心者、かつ長い質問になります。)

起こっているバグ:

マイページボタン(下記参照)を押すと、Couldn't find User with 'id'=
投稿するボタン(下記参照)を押すと、undefined method `comics_path' for #<#<Class:0x007fb62d582ad8>:0x007fb62c237eb0> となる。

関連(していると思われる)ソースコード(おそらくルーティングが問題?):

1ターミナルrake routes

root GET      /                            comics#index

POST       /                             comics#create

like_user_comic POST     /user/:user_id/comics/:id/like(.:format) comics#like

search_user_comics GET      /user/:user_id/comics/search(.:format)   comics#search

user_comics GET      /user/:user_id/comics(.:format)          comics#index

POST     /user/:user_id/comics(.:format)          comics#create

new_user_comic GET      /user/:user_id/comics/new(.:format)      comics#new

edit_user_comic GET      /user/:user_id/comics/:id/edit(.:format) comics#edit

user_comic GET      /user/:user_id/comics/:id(.:format)      comics#show

PATCH    /user/:user_id/comics/:id(.:format)      comics#update

PUT      /user/:user_id/comics/:id(.:format)      comics#update

DELETE   /user/:user_id/comics/:id(.:format)      comics#destroy

user_index GET      /user(.:format)                          user#index

POST     /user(.:format)                          user#create

new_user GET      /user/new(.:format)                      user#new

edit_user GET      /user/:id/edit(.:format)                 user#edit

user GET      /user/:id(.:format)                      user#show

PATCH    /user/:id(.:format)                      user#update

PUT      /user/:id(.:format)                      user#update

DELETE   /user/:id(.:format)                      user#destroy

2comics_controller

def index
    @comic = Comic.order('id DESC')
    @comic_ranking = Comic.order("like DESC").limit(5)
  end

  def like
    @comic_liked = Comic.find(params[:id])
    @comic_liked.update(like: @comic_liked.like+1)
    redirect_to :action =>'index'

  end

  def show
  end

  def new
    @comic = Comic.new
  end

  def create 
    @comic = Comic.new(comic_params)
    @comic.save
    redirect_to :action =>'index'
  end

  def search
    @q = Comic.ransack(params[:q])
    @comics = @q.result
  end

  def comic_params
    params.require(:comic).permit(:title,:author,:like,:front_cover)
  end
end
<h1> ~~~~</h1>
~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
<% if user_signed_in? %>
  <%= link_to '作品検索' ,search_user_comics_path(user_id: current_user.id) %>
  <%= link_to '投稿する' ,new_user_comic_path(user_id: current_user.id) %>
  <%= link_to 'マイページ' ,user_path(id: current_user.id), method: "get" %>
  <%#= @user.name %>
  <%= link_to "ログアウト", destroy_user_session_path, method: "delete" %>
<% else %>
  <%= link_to 'ログイン' ,user_session_path %>
<% end %>

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
長くなり申し訳ありません。少しでも情報開示した方がよいかと思い、このような形にいたしました。
何卒、ご協力ください。よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • suzukis

    2017/03/02 16:15

    インデントなどが反映されていないのでとても見にくいです。適切に表示されるように、編集画面でコードの部分を選択して、"<code>"のボタンを押してください。

    キャンセル

回答 1

checkベストアンサー

0

applicaiton_controller.rb

def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end


という記述がありますか

route.rb

resouces :comics 


という記述がありますか
なければそれぞれ追加してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/05 09:20

    ありがとうございます。
    一つ目がありませんのでやってみます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る