我如何检查在 RoR 中提交表单时发生的情况?

How can I check what happens when I submit a form in RoR?

我的 lists_controller.rb 通过复制方法

提供 @list@lists
  def duplicate
    @lists = List.includes(:list_fields, :user, :list_parts)
    @list = List.new
    respond_to do |format|
      format.html
    end
  end

我的 duplicate.html.erb 文件中有一个表格。

<%= form_for( @list, :html => { :class => "formtastic normal", :id => "generator_form" }) do |f| -%>
        <fieldset>
          <ol>
            <li>
              <%= label_tag :list_source, "Available lists" %>
              <%= select "list", "original_id", @lists.sort{|a,b| a.title <=> b.title}.collect{|p| [p.title[0,50]+"...", p.id] }, { :include_blank => "Please select a list" } %>
            </li>
          </ol>
        </fieldset>
        <p><%= f.submit "Duplicate" -%></p>
<% end -%>

select 助手给了我一个下拉菜单,我可以从中 select 一个列表。当我单击提交时,将创建一个新列表(从现有列表创建)并保存在我的数据库中,但我真的不知道提交时幕后发生了什么(单击“复制”)。我该如何检查?

只需使用 Rails 记录器。在开发环境中,当服务器为 运行

时,它会在终端中打印信息

还将日志写入文件。默认目的地是 log/<environment>.log

所以你可以使用tail命令。例如在生产中实时读取输出

tail -f log/production.log

您还可以指定日志记录级别和设置日志消息格式

并且您可以像这样在您的代码中手动调用记录器

Rails.logger.info 'your message'

在日志中,您将看到请求的操作和控制器、表单中的参数、SQL-查询、呈现的内容或重定向的位置等。

请在official guide

中阅读更多内容