无表格模型 - 从表格参数创建对象的NoMethodError

时间:2015-03-03 11:04:06

标签: ruby-on-rails ruby activerecord

当我尝试使用提供的表单参数保存无表格模型时出现此错误:

error message

用户是我的设计模型。我不知道错误的来源,原因是什么。我不应该约会或等等。

我使用ActiveRecord Tableless gem创建了无表格模型:

class Search < ActiveRecord::Base
  has_no_table

  column :start_date, :date
  column :end_date, :date
  column :smart, :boolean
end

我的表格:

  <%= form_for @search, url: {controller: 'search', action: 'search'} do |s| %>
        <%= s.hidden_field :smart, :value => false %>

      <div class='col-md-4'>
        <div class="form-group">
          <div class='input-group'>
            <%= s.text_field :start_date, class: 'form-control', required: true %>
            <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
          </div>
        </div>
      </div>

      <div class='col-md-4'>
        <div class="form-group">
          <div class='input-group'>
            <%= s.text_field :end_date, class: 'form-control', required: true %>
            <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
          </div>
        </div>
      </div>

      <div class="col-md-1">
        <%= button_tag 'Search', class: 'btn btn-success' %>
      </div>
  <% end %>

我的控制器,我收到错误:

class SearchController < ApplicationController
  def search
    @search = Search.new(search_params)

    puts params
    puts @search.as_json.to_s
  end

  private
  def search_params
    params.require(:search).permit(:start_date, :end_date, :smart)
  end
end

我正在为我的表单使用模型,因为我希望它在未来与其他模型有多对一的关联。

更新

正如 alexcavalli 所指出的,这是ActiveRecord Tableless gem的一个问题。可以找到该票证here

1 个答案:

答案 0 :(得分:0)

看起来该方法名称的from_user部分与设计无关。它只是一个ActiveRecord方法。

http://www.rubydoc.info/github/rails/rails/ActiveRecord/Type/Value:type_cast_from_user

Tableless gem和Rails 4.2存在一个未解决的问题 https://github.com/softace/activerecord-tableless/issues/22#issuecomment-67742177

或者还有一些信息可能是由Postgres适配器引起的

  

使用Postgresql(pg)适配器时,此问题仍然存在。我在使用时遇到错误:string。通过使用:varchar

可以解决这个问题

您可能最好在那里提交错误报告和/或尝试稍微旧版本的Rails。祝你好运!