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上的任何地方都可以找到它.
事实证明,对于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)
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |