首页 > 解决方案 > 调试文件,以便在 Rails 上制作确认页面 ruby

问题描述

我对 ruby​​ on rails 还是很陌生。我需要制作一个显示所有数据的确认页面。

这是我的表格

<%= form_tag(email_path, method: :post ) do %>
  <dl class="cf">
    <dt class="required">name</dt>
    <dd><%= text_field_tag(:name, "", class: 'input_text full') %></dd>
  </dl>
  <dl class="cf">
    <dt class="required">company</dt>
    <dd><%= text_field_tag(:company, "", class: 'input_text full') %></dd>
  </dl>
  <dl class="cf">
    <dt class="required">tel</dt>
    <dd><%= text_field_tag(:tel, "", class: 'input_text tel') %></dd>
  </dl>
  <dl class="cf">
    <dt class="required">email</dt>
    <dd><%= text_field_tag(:email, "", class: 'input_text email') %></dd>
  </dl>
  <dl class="cf">
    <dt class="">commant</dt>
    <dd><%= text_area_tag(:commant, "", class: 'textarea') %></dd>
  </dl>
  <ul class="form_btn cf">
    <li class="submit"><%= submit_tag(t('.ultra_tech_form_title').html_safe) %></li>
  </ul>

  <% end %>

这是我的路线

get 'email',  to: 'pages#email'
post 'email', to: 'pages#email_confirm'

这是我的控制器

def email; end

  def email_confirm
    render plain: params[:post].inspect
  end

但似乎我没有成功调试它。如何调试数据?

标签: ruby-on-railsruby

解决方案


有错误的地方render plain: params[:post].inspect。您没有任何带有 key 的参数:post。所以,render plain: params.inspect会工作得很好。

关于这样做的理由:没有理由。您可以安装 gem 'pry-rails' 或仅从日志文件或控制台中的实时日志中读取传入参数。例如:

Started POST "/email" for ....
Processing by PagesController#email_confirm as HTML
  Parameters: {...}

您还可以使用包含在 rails 默认 gemset 中的 byebug:

def email_confirm
  byebug
  ...
end

在这个地方,您将在控制台中拥有所有代码状态的 irb-mode。

有关在 Rails 中调试的更多信息


推荐阅读