weixin_42402639
weixin_42402639
2010-10-29 18:37
浏览 328
已采纳

rails的migrate如何动态创建字段?

有一个表是这种结构,user_id,item_1,item_2,item_3,....item_180

想问问使用rails的migrate进行定义的时候,有没有比较简单的动态创建办法?

尝试了这种写法:

count=1
until count>181 do
t.integer :item_'+count.to_s
count = count+1
end

运行的时候,报错,意思是,undefined method `+'

目前找到的一种比较笨的方法是,将这种动态创建字段的语句放到migrate文件的sql附加部分,直接通过sql来写。

但是还是很想知道,有没有不通过sql而是直接通过ruby语句的写法?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • vwangzhen
    vwangzhen 2010-11-02 16:26
    已采纳

    t.integer “item_'”+count.to_s

    :item_' 是没有这个方法的

    点赞 评论
  • zaqwsxedc
    zaqwsxedc 2010-11-02 12:08

    你的写法应该可行。你遇到的错误是语法问题。

    点赞 评论

相关推荐