如何设置我的Rails表单以提交给创建方法?

时间:2018-02-08 17:51:02

标签: ruby-on-rails routes ruby-on-rails-5 form-for

我使用的是Rails 5,但我对如何设置表单感到困惑,因此它提交给我的"创建"控制器方法。这是我设置的路线

  resources :comments

这是我设置的表格

<%= form_for @comments, :html => {:class => "commentsForm"} do |f| %>
  <div class="field">
    <%= f.label :description %><br>
    <%= f.text_field :description %>
  </div>
  <%= recaptcha_tags %>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

但上面的模具有错误

undefined method `comments_index_path' for #<#<Class:0x00007fdaaf2b6240>:0x00007fdaaf2ae518>

我不知道我还应该做些什么才能让我的表单发挥作用。在我的控制器中,我有一个&#34;创建&#34;和一个&#34;新&#34;方法

编辑:这是控制器

class CommentsController < ActionController::Base

  before_action :require_current_user, except: [:new]

  def new
    @comments = Comments.new
  end

  def create
    @comments = Comments.new(params[:comments].permit(:description))
    if verify_recaptcha(model: @comments)
      render "Finished"
    end
  end

end

1 个答案:

答案 0 :(得分:1)

我认为,你的应用程序comments_controller新动作应该是这样的 -

<span class="fa-stack fa-lg">
<i class="fa fa-envelope fa-stack-1x"></i>
  <i class="fa fa-ellipsis-h fa-stack-2x"></i>
</span>

你的表格部分应该是这样的

# app/controllers/comments_controller.rb 
class CommentsController < ApplicationController
 # Rest of code here

 def new
   @comment = Comment.new # Not the @comments
 end
 # Rest of code here
end