小编Xav*_*avM的帖子

在rails 4迁移中加入表注释

我在rails 4上很新,我不确定应该如何成为我的join_table.

我完成了迁移

rails g migration CreateJoinTableQuestionSubTopic question sub_topic
Run Code Online (Sandbox Code Playgroud)

我收到这个文件

class CreateJoinTableQuestionSubTopic < ActiveRecord::Migration
  def change
    create_join_table :questions, :sub_topics do |t|
      # t.index [:question_id, :sub_topic_id]
      # t.index [:sub_topic_id, :question_id]
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么这两个索引都在评论中?我认为其中只有一个取消注释,这是正确的方法吗?

没有必要写

t.column :question_id, :integer
t.column :sub_topic_id, :integer
Run Code Online (Sandbox Code Playgroud)

和/或

t.index :question_id
t.index :sub_topic_id
Run Code Online (Sandbox Code Playgroud)

我想有一个高性能的连接表,但如果在rails 4上有一个新表,我不想以旧时尚方式进行

谢谢你的帮助

migration join ruby-on-rails has-and-belongs-to-many ruby-on-rails-4

6
推荐指数
1
解决办法
550
查看次数

替换正则表达式中的每个模式

我找到合适的模式来获取我想要的字符串时遇到了一些麻烦.

我的起始字符串是:

,,,,C3:,D3,E3,F3,,
Run Code Online (Sandbox Code Playgroud)

我想拥有

      C3:  [D3,E3,F3]
Run Code Online (Sandbox Code Playgroud)
  1. 我想用双倍空格替换每个起始逗号
  2. 冒号后用双倍空格和左方括号替换昏迷
  3. 用右方括号替换尾随逗号

现在,我试过这个:

> a = ",,,,C3:,D3,E3,F3,,"
=> ",,,,C3:,D3,E3,F3,,"
> b = a.gsub(/^,*/, "  ").gsub(/(?<=:),/, "  [").gsub(/[,]*$/,"" ).gsub(/[ ]*$/, "]")
=> "  C3:  [D3,E3,F3]"
> b == "        C3:  [D3,E3,F3]"
=> false
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我无法通过双空格替换每个起始逗号以获得​​8个空格.

你能帮我找到合适的正则表达式吗?如果可能的话,请改进我的代码吗?

ruby regex ruby-on-rails gsub

4
推荐指数
1
解决办法
76
查看次数