ruby Link_to在控制器中找不到操作,即使操作存在

envsm3lx  于 2023-05-28  发布在  Ruby
关注(0)|答案(1)|浏览(116)

我有以下看法。基本上,一旦你点击它,它应该生成一个新的图书职位。每一本书都与一个帖子相关联。但我一直得到这个错误: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

我已经确认了没有打印错误。我真的很感激帮助。

ppcbkaq5

ppcbkaq51#

使用完整的控制器代码和rails routes输出编辑问题。请尝试以下步骤:
1.运行rails routes并检查此路由是否存在,并指定了正确的请求方法和控制器操作。
1.检查服务器日志以了解请求方法和路径。它应与步骤#1匹配
1.确保在您的操作结束后,您的控制器中没有任何额外的end
1.确保您的操作在控制器中未声明为private
1.此外,对app/之外的任何内容(如config/routes.rb)进行更改都需要重新启动服务器。

相关问题