前提・実現したいこと
プログラミングを始めたばかりの初心者です。
RubyOnRailsで投稿アプリを作成しているのですが、作成途中で新規投稿をするためにnewアクションを実行したところ、updateアクションが実行され、過去に投稿した記事まで上書きしてしまうようになりました。
まだ、アクション同士の関係性も上手く理解出来ておらず困っています。
解決できる方がいればお手数お掛けしますが、何卒宜しくお願い致します。
該当のソースコード
コントローラーページ
class BooksController < ApplicationController
def new
@book = Book.new
end
def create
@book = Book.new(book_params) @book.user_id = current_user.id binding.pry if @book.save flash[:complete] = "Book was successfully created." redirect_to book_path(@book) else @books =Book.all @user =current_user render :index end
end
def index
@book = Book.new
@user =current_user
@users =User.all
@books =Book.all
end
def show
@book = Book.find(params[:id])
@booknew = Book.new
@user =current_user
@books =Book.all
end
def edit
@book = Book.find(params[:id])
end
def update
@book = Book.find(params[:id])
if @book.update(book_params)
flash[:complete] = "Book was successfully updated."
redirect_to book_path(@book.id)
else
render :edit
end
end
def destroy
@book = Book.find(params[:id])
@book.destroy
flash[:complete]="Book was successfully destroyed."
redirect_to books_path
end
private
def book_params
params.require(:book).permit(:title ,:body, :user_id)
end
end
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ビューページ
</table> </div> </div> </div><% @books.each do |book| %> <thead> <tr> <th>title</th> <th>Opinion</th> <th colspan="3"></th> </tr> </thead> <tbody> <tr> <td> <%=link_to book.title, book_path(book.id) %></td> <td><%= book.body %></td> </tr> </tbody> <% end %>
補足情報(FW/ツールのバージョンなど)
補足事項必要であれば付け加えます。
Ruby、Railsについては最新のバージョンを使用しています。
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー