0

Ruby on Railsアプリには、ユーザーと本棚の2つのモデルがあります。各本棚に編集リンクを提供しましたが、これらのリンクをクリックすると、エラーが発生します。

ActiveRecord::RecordNotFound in BookcasesController#edit
Couldn't find User with id=19

(ユーザーIDを要求していることに注意してください。また、本棚はユーザーに属していることに注意してください。)

リンクの作成に使用したスニペットは次のとおりです。

<%= link_to "edit", edit_bookcase_path(bookcase.id) %>

さらにコードが必要な場合は、お知らせください。投稿します。

4

1 に答える 1

2

私があなたが尋ねたことを知ることができることから、あなたがEDITメソッドのBookcasesControllerにいる場合、あなたはUserを呼び出すべきではなく、次のようにBookCaseを呼び出すべきです:

@bookcase = BookCase.find(params[:id]) // WHAT YOU WANT

代わりにこのコードを使用しているようです。これにより、エラーが発生します。

@bookcase = User.find(params[:id]) // NOT WHAT YOU WANT

これにより、ユーザーに属する必要があるID19のBookCaseが返されます。次に、その本が属するユーザーにアクセスする必要がある場合は、次のようにすることができます。

@user = @bookcase.user

また、idを呼び出さずに、次のような編集リンクを使用することもできます。

<%= link_to "edit", edit_bookcase_path(bookcase) %>
于 2012-06-13T20:19:52.860 に答える