【问题标题】:validating form without model and responding with error in Rails 4在 Rails 4 中验证没有模型的表单并以错误响应
【发布时间】:2014-05-22 15:55:06
【问题描述】:

我有这个问题,我似乎无法弄清楚。好的,我有一个表单,用户可以在其中输入值,而不是使用 ajax remote: true 通过 POST 方法将其发送到控制器 比我需要验证用户输入。这个表格不会被保存到数据库中,所以这个控制器没有模型。我该怎么办?经过验证后,我该如何回应要查看的错误?

这是视图(我正在使用 HAML):

= form_tag({action: "calculate"}, :method => :post, remote: true) do
  .value#grace_field
    = label_tag t('value', :scope => 'controller_scope_name')
    = select_tag "value", options_for_select([[0, 0],[1, 1]])
  = submit_tag t('calculate', :scope => "controller_scope_name")
.section#results

这里是控制器:

class HomeController < ApplicationController

  def calculate

    #.... here is some logic which i canot publish. 

    @results = {
      #some results
    }

    respond_to do |format|
      format.js {}
    end
  end

end

这里是响应文件calculate.js.erb 和部分_results.html.haml

1

$("#results").html("<%= escape_javascript(render 'results') %>");

2

 %ul
      - @results.each do |key, value|
        %li= t("results.#{key}") + ": #{value}"

一切正常,但现在我需要验证这个表单......我阅读了一些关于使用 ActiveRecord 方法处理普通 rails 对象的内容。我怎么能这样做?

【问题讨论】:

    标签: ruby-on-rails ajax validation haml


    【解决方案1】:

    您可以在普通对象中包含ActiveModel::Validations,并像在 ActiveRecords 中一样使用验证器。 更多信息请查看this railscast

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2017-10-21
      • 2018-11-08
      相关资源
      最近更新 更多