我在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
我找到合适的模式来获取我想要的字符串时遇到了一些麻烦.
我的起始字符串是:
,,,,C3:,D3,E3,F3,,
Run Code Online (Sandbox Code Playgroud)
我想拥有
C3: [D3,E3,F3]
Run Code Online (Sandbox Code Playgroud)
现在,我试过这个:
> 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个空格.
你能帮我找到合适的正则表达式吗?如果可能的话,请改进我的代码吗?