ユーザーが作成してからページを作成できる本がいくつかあります。
ルート.rb:
resources :books do
member do
get 'pages'
end
end
これにより、/books/:book_id/pages から新しいページを作成するためのリンクが得られます
そのページで私はパーシャルをレンダリングします:
<%= render '/pages/new' %>
ブックコントローラー:
def page
@book = Book.find(params[:id])
@page = @book.pages.new
end
しかし、params がページ コントローラーに渡されると、book_id が失われます。
ページコントローラー:
def create
@page = Page.new(params[:page])
if @page.save
redirect_to @page
else
render 'new'
end
end
また、リダイレクト後に id も消えるため、エラー処理が難しくなります。
コンソールを介してページを作成すると book_id が保持されるため、アプリケーションの残りの部分は問題ないように思われます。
これは私の最初のアプリなので、これがアプローチする正しい方法であるかどうかさえわかりません...どうすればこれを機能させることができますか?
みんなありがとう!