我有一个匹配字母,数字,_和 - (具有最小和最大长度)的正则表达式.
^[a-zA-Z0-9_-]{3,100}$
Run Code Online (Sandbox Code Playgroud)
我想在那组字符中包含空格.
根据Python文档:
在集合中也接受诸如\ w或\ S之类的字符类.
所以我尝试过:
^[a-zA-Z0-9_-\s]{3,100}$
Run Code Online (Sandbox Code Playgroud)
但它给出了不良的字符范围错误.如何在上面的集合中包含空格?
在我的应用程序中,用户可以关注许多用户,并且可以跟随许多用户.我尝试使用has_and_belongs_to_many关联对此进行建模
class User < ActiveRecord::Base
has_and_belongs_to_many :followers, class_name: "User", foreign_key: "followee_id", join_table: "followees_followers"
has_and_belongs_to_many :followees, class_name: "User", foreign_key: "follower_id", join_table: "followees_followers"
end
Run Code Online (Sandbox Code Playgroud)
另外,我为join表创建了一个迁移,如下所示:
class FolloweesFollowers < ActiveRecord::Migration
def up
create_table 'followees_followers', :id => false do |t|
t.column :followee_id, :integer
t.column :follower_id, :integer
end
end
def down
drop_table 'followees_followers'
end
end
Run Code Online (Sandbox Code Playgroud)
当我尝试访问用户的关注者(User.first.followers)时,它会抛出一个错误:
SQLException: no such column: followees_followers.user_id: SELECT "users".* FROM "users" INNER JOIN "followees_followers" ON "users"."id" = "followees_followers"."user_id" WHERE "followees_followers"."followee_id" = 1
Run Code Online (Sandbox Code Playgroud)
我不明白为什么要访问followees_followers.user_id.我错过了什么吗?
如何仅为rails中的新表单设置文本字段的默认值?我正在使用:value => "0"形式偏.但问题是虽然我在数据库中有一个值,但我在编辑形式中得到0.实际上在文本字段的新形式中我默认分配0,当用户没有选择任何值时.但是当用户更改该值并保存表单时,同时在显示编辑表单时,我得到"0"值.当编辑表单中的数据库中有值时,如何避免显示"0"?这是我正在使用的语法.
<%= f.text_field :duration , :size=>"4", :value => "0" %>
Run Code Online (Sandbox Code Playgroud)