无法获取sabisu gem渲染 - 显示没有找到inet错误的输入

jak*_*ork 2 simple-form ruby-on-rails-4

所以我正在通过api on rails教程 - http://apionrails.icalialabs.com/book - 我在错误窗口中不断收到错误'找不到inet的输入'.

错误突出显示发生问题的代码块:

<div class="appeareable">
    <% @explorer.resource_columns.each do |column| %>
        <%= f.input column, input_html: {name: "#{@explorer.resource_name}[#{column}]" }, as: @explorer.column_type(column), required: @explorer.required_attribute?(column) %>
    <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图锁定指南针和simple_form宝石,但是使用rails 4.1.4和ruby 2.1.5的依赖关系开始分崩离析.

看起来simple_form正试图渲染一个名为'inet'的资源,但我无法在gem代码中的任何地方找到它,甚至在google上的任何地方都可以找到它.

jak*_*ork 6

事实证明,对于postgres,simple_form在处理现在包含在rails 4中的'inet'数据类型时存在问题 - https://blog.engineyard.com/2013/new-in-rails-4(ctrl-f for inet) .

IP曾经是字符串数据类型(postgres中的varchar 255),因此将db转换为用户表中的2个IP字段的字符串(current_sign_in_ip和last_sign_in_ip)可以解决此问题.

我想,simple_form将更新以在某个时候处理这​​个新的数据类型...虽然我没有在他们的问题日志中看到任何提及它.

我通过添加新的迁移来做到这一点:

rails g migration change_ip_columns_in_users_table
Run Code Online (Sandbox Code Playgroud)

然后我编辑了迁移文件:

class ChangeIpColumnsInUsersTable < ActiveRecord::Migration
    def change
        change_column :users, :current_sign_in_ip, :string
        change_column :users, :last_sign_in_ip, :string
    end
end
Run Code Online (Sandbox Code Playgroud)