当我尝试提交评论时出现错误。
routes.rb文件:
scope module: 'admin' do
resources :comments
end
_form
<%= form_for new_comment_path do |f| %>
<%= f.label :name %><br>
<%= f.text_field :name %>
...
<%= submit_tag 'Submit', :class => 'btn btn-primary' %>
<% end %>
comments_controller.rb
def new
@comment = Admin::Comment.new
end
def create
@comment = Admin::Comment.new(comment_params)
...
end
答案 0 :(得分:2)
使用
<%= form_for(@comment, url: comments_path) do |f| %>
当您需要发布表单时,您需要一个POST路由。这会自动将您的表单发布到create
操作(comments_path
)。逻辑new
表单应发布到您的控制器的create
操作。
new_comment_path
指的是您尝试在表单上使用的新页面的GET
路由。它不是POST
路线,因此您会收到错误。
new_comment GET /comments/new(.:format) admin/comments#new
POST /comments(.:format) admin/comments#create ## You need this route
定义您的路线如下:
namespace :admin do
resources :comments
end
您可以使用form_for
作为
<%= form_for(@comment) do |f| %>
答案 1 :(得分:0)