【问题标题】:How do I set up my Rails form to submit to a create method?如何设置我的 Rails 表单以提交到 create 方法?
【发布时间】:2018-02-08 17:51:02
【问题描述】:

我正在使用 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>

我不确定我还应该做什么才能让我的表单正常工作。在我的控制器中,我有一个“创建”和一个“新建”方法。

编辑:这是控制器

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

【问题讨论】:

  • 这是指一个索引路径,您似乎没有,但可能正在重定向到?您可以在问题中发布您的 cmets 控制器代码吗?
  • 当然我添加了控制器代码。

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


【解决方案1】:

我想,你的应用 cmets_controller 新动作应该是这样的——

# 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

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

# app/views/comments/_form.html.erb
<%= form_for @comment, :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 %>

【讨论】:

  • 我进行了您指定的更改,但我仍然在我原来抱怨的同一行上收到“#:0x00007f9b3429af28> 的未定义方法 `cmets_index_path'”错误问题。
  • 嗨@Dave,我看到了你修改后的控制器代码。我猜你的应用程序模型命名约定是错误的。推荐的模型名称应该是 Comment 而不是 Comments。
  • 嗨@Dave,你也可以使用这个命令重新生成你的评论脚手架 - rails generate scaffold Comment text:string
猜你喜欢
  • 2016-01-06
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 2021-12-19
  • 1970-01-01
相关资源
最近更新 更多