2016-05-17 6 views
0

編集:同じようなスレッドが見つかりました。このスレッドからアドバイスに従います:簡単なRailsブログのindex_post_pathへのリンク方法は?

How to route from a nested resource in rails? Getting 'ActiveRecord::RecordNotFound in UsersController#show'

EDIT2を:

これが原因<% =のlink_to "編集" であり、edit_game_path(:ああ、私は同様のスレッドでこれを見つけました: id)%>を呼び出してレイアウトテンプレートを呼び出します。それは間違っています。 no:idが存在するので、あなたが見ている/ゲームしている場合は編集できません。

gotcha。私はfind_idメソッドを作る必要がありますか? DEF
を編集

:私はposts_controllerで編集および更新機能を定義している私はブログ

のための基本的なレールのチュートリアルに沿って、次のよ


を更新し、この答えを維持します@post = Post.find(params [:id])
end

def update
@post = Post.find(paramsは[:ID])を表示するページ(ローカルホスト:3000 /ポスト/ 1)で

if @post.update(params[:post].permit(:title, :body)) 
     redirect_to @post 
    else 
     render 'edit' 
    end 

とedit_pathへのリンクは、うまく動作し(

が、私は、各ポストの下にインデックスページに同じコードを配置する場合、urlはそれがredirecしようとします。それを)http://localhost:3000/posts/1/editに行きますtは

http://localhost:3000/posts/%23%3CPost::ActiveRecord_Relation:0xd0a2518%3E/edit

がそう明らかにそれが正しいIDをつかんで問題がありますされています。 %23%3CPost :: ActiveRecord_Relation:0xd0a2518%3Eの代わりに、編集する投稿のIDを取得するだけです。

これはおそらく本当に簡単な修正ですが、あなたは私がかなり新しいと言うことができます。前もって感謝します。ああ、誰かも "params"がどこから来たのか説明できますか?どのように私はこれを定義する必要はありませんでしたか? posts_controllerのprivateセクションにpost_paramsを定義しましたが、paramsは何ですか?たぶん私はちょうどそれをgoogleします。混乱して何:

post.update(のparams [:ポスト] .permit(:タイトル、:体))@もし

が実際に意味します。私は、それが更新かどうかのブーリアンですが、更新のためのパラメータが何であるかはわかりません。前もって感謝します!

答えて

0

DBからゲームを前に引っ張った場合、ショーアクションでゲームを編集できます。

あなたがゲーム/秒を表示するときは、各ゲームのレンダリング

def index 
@game = Game.all 
end 

これは、すべてあなたのゲームをループし、ゲームテンプレートまたは部分を使用して、それらすべてをレンダリングします。 (view/games/_game.erb)

各ゲームはそれぞれのIDを知っています。あなたがしなければならないことは、edit_pathを呼び出すためのその部分の中にあります。

そして、その特定のゲームの編集ページに移動します。

関連する問題