0

我的环境是这样的:

Rails 3.2.13
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin10.8.0]
postsql 9.2

我使用此迁移创建了 States 表:

class CreateStates < ActiveRecord::Migration
  def up
    create_table :states do |t|
        t.string "states"
        t.timestamps
    end
  end
  def down
    drop_table :states
  end
end

我使用了这个seeds.rb 文件来填充我的状态表:

State.delete_all
 open("/opt/nginx/html/blog/db/states.txt") do |states|
 states.read.each_line do |state|
 State.create!(:states => state)
end

在我的 Rails 控制台中,输出看起来不错(“/n”除外)

> state = State.first
  State Load (0.6ms)  SELECT "states".* FROM "states" LIMIT 1
  => #<State id: 225, states: "Alabama\n", created_at: "2013-07-11 03:51:43",
  updated_at: "2013-07-11 03:51:43"> 

使用关联,States 位于会议的 ActiveAdmin 模块中。但是当在浏览器中呈现时,我得到了这个:

<option value="225">#&lt;State:0x00000105a608f0&gt;</option>

我确定 rake db:seed 导致了这个问题。“/n”是一个指示。

任何解决此问题的帮助将不胜感激!

4

1 回答 1

0

您需要将表中的列重命名为,states因为它看起来很混乱。为了摆脱尾随你可以做statesname\n

open("/opt/nginx/html/blog/db/states.txt") do |states|
  states.read.each_line do |state|
  State.create!(:states => state.chomp)
end
于 2013-07-18T07:51:42.883 回答