2016-08-03 4 views
2

私はかなり単純link_to状況がどうあるべきかあります。しかしRailsの `ビューの表示、未編集ビューにedit_joke_path`リンク

<% @jokes.each do |joke| %> 
    ... 
    <%= link_to edit_joke_path(joke) do %> 
    <span style="color: blue" class="glyphicon glyphicon-pencil" aria-hidden="true"></span><span style="color: blue">Edit Joke</span> 
    <% end %> 
    ... 
<% end %> 

、私はこのリンクをクリックしたとき、それはjokes#showページではないに私を取りますjokes#editページここに私のルートがあります:

   jokes GET /jokes(.:format)    jokes#index 
        POST /jokes(.:format)    jokes#create 
      new_joke GET /jokes/new(.:format)   jokes#new 
      edit_joke GET /jokes/:id/edit(.:format)  jokes#edit 
       joke GET /jokes/:id(.:format)   jokes#show 
        PATCH /jokes/:id(.:format)   jokes#update 
        PUT /jokes/:id(.:format)   jokes#update 
        DELETE /jokes/:id(.:format)   jokes#destroy 

どこが間違っているのでしょうか?これは本当にシンプルなようですが、それはすべきではありません。

ADDITIONAL INFO

ここに私のjokes_controllerからeditアクションです:

def edit 
    @joke = Joke.find(params[:id]) 
    @joke.user = current_user 
    @joke.save 
    redirect_to joke_path 
    end 
+0

あなたのコードはcurrectある、いや、 'jokes_controller.rb' – hgsongra

+0

@hgsongraから' edit'アクションコードを提供しています。再起動しても、まだ 'show'ページに行きます。 – Liz

+0

私のコメントを更新してください、詳細を見てください。 – hgsongra

答えて

1

を指定しました。

あなたの問題を解決するには、editアクションの下の行を削除またはコメントしてください。

redirect_to joke_path 
+0

それは彼の問題を修正する理由を説明するのがいいでしょう – lcguida

+0

@icguida:更新された答えを参照してください、それは今okですか? – hgsongra

+0

私は彼がリダイレクトする必要はないと言ったのは、レールがアクション名とビューを一致させ、 'edit'ビューを自動的にレンダリングするからです。そしてそれがあなたが言及した行を削除することが問題を解決する理由です。 – lcguida

0

あなたの行動からredirect_to joke_pathを削除します。それはあなたをショーページに連れて行っています。

1
edit_joke_path(joke) 

ジョークの#編集に行くが、編集のfuctionの終わりに、あなたはredirect_toを追加しました。編集機能からredirect_toを削除します。

redirect_toは:ターゲットにブラウザをリダイレクトし、問題の原因jokes_controller.rb

def edit 
    @joke = Joke.find(params[:id]) 
    @joke.user = current_user 
    @joke.save 
    redirect_to joke_path 
    end 

redirect_to joke_pathにコードの下あたりのよう

関連する問題