我有以下看法。基本上,一旦你点击它,它应该生成一个新的图书职位。每一本书都与一个帖子相关联。但我一直得到这个错误:AbstractController::ActionNotFound (The action 'generate_book' could not be found for PostsController):
<%= link_to "New Book", generate_book_post_path(post.id), data: { turbo_method: :post } %>
# above code is within <% @posts.each do |post| %>
下面是我的posts控制器:
def generate_book
post = Post.find(params[:id])
book_output = GetBook.call # calls services
Book.create(post: post, one: book_output)
redirect_to books_path
end
我的路线:
resources :posts do
post :generate_book, on: :member
end
我已经确认了没有打印错误。我真的很感激帮助。
1条答案
按热度按时间ppcbkaq51#
使用完整的控制器代码和
rails routes
输出编辑问题。请尝试以下步骤:1.运行
rails routes
并检查此路由是否存在,并指定了正确的请求方法和控制器操作。1.检查服务器日志以了解请求方法和路径。它应与步骤#1匹配
1.确保在您的操作结束后,您的控制器中没有任何额外的
end
。1.确保您的操作在控制器中未声明为
private
。1.此外,对
app/
之外的任何内容(如config/routes.rb
)进行更改都需要重新启动服务器。