据我了解,OAuth 2中发生以下事件链,以便Site-A从中访问用户的信息Site-B.
Site-A注册Site-B,并获得一个秘密和一个ID.Site-A访问时Site-B,用户被发送到Site-B他告诉Site-B他确实想要授予Site-A特定信息权限的位置.Site-B重定向用户回Site-A,用授权码来一起.Site-A然后将该授权码连同其秘密一起传递回Site-B安全令牌.Site-A然后通过捆绑安全令牌和请求来Site-B代表用户发出请求.所有这些在高级别上如何在安全性和加密方面起作用?OAuth 2如何使用安全令牌防止重放攻击等事情?
我有一个html textarea,其宽度固定,但高度可变.我想设置溢出:滚动并能够显示垂直滚动条,但不能显示水平滚动条.由于我的具体情况,我无法使用overflow:auto.
我知道使用CSS 2无法仅显示垂直而非水平滚动条.有什么我可以使用JavaScript来隐藏水平滚动条?
我有一个具有Array属性的模型.从表单提交中填充该属性的正确方法是什么?
我知道有一个带有字段的表单输入,其名称包括括号,从输入创建一个哈希.我应该只是拿着它并在控制器中踩过它来按摩它成阵列吗?
让它不那么抽象的例子:
class Article
serialize :links, Array
end
Run Code Online (Sandbox Code Playgroud)
links变量采用URL数组的形式,即 [["http://www.google.com"], ["http://stackoverflow.com"]]
当我在表单中使用类似下面的内容时,会创建一个哈希:
<%= hidden_field_tag "article[links][#{url}]", :track, :value => nil %>
Run Code Online (Sandbox Code Playgroud)
结果哈希看起来像这样:
"links" => {"http://www.google.com" => "", "http://stackoverflow.com" => ""}
Run Code Online (Sandbox Code Playgroud)
如果我没有在链接名称中包含url,则其他值会相互冲突:
<%= hidden_field_tag "article[links]", :track, :value => url %>
Run Code Online (Sandbox Code Playgroud)
结果如下: "links" => "http://stackoverflow.com"
我搞砸了并创建了一个varchar(255)列,这已经不够用了.我已经读过varchar对Postgres上的文本没有性能优势,所以想要以保存数据的安全方式将varchar转换为文本列.
这对我来说最好的方法是什么?
是否有可能has_many :through在Rails中有多个相互关系的关系?我收到了这样的建议,作为我发布的另一个问题的解决方案,但一直无法让它工作.
好友是通过联接表的循环关联.我的目标是创建一个has_many :throughfor friends_comments,所以我可以采取行动,User并user.friends_comments在一个查询中获取他的朋友发表的所有评论.
class User
has_many :friendships
has_many :friends,
:through => :friendships,
:conditions => "status = #{Friendship::FULL}"
has_many :comments
has_many :friends_comments, :through => :friends, :source => :comments
end
class Friendship < ActiveRecord::Base
belongs_to :user
belongs_to :friend, :class_name => "User", :foreign_key => "friend_id"
end
Run Code Online (Sandbox Code Playgroud)
这看起来很棒,而且很有意义,但不适合我.当我尝试访问用户的friends_comments时,这是我在相关部分中遇到的错误:
ERROR: column users.user_id does not exist
: SELECT "comments".* FROM "comments" INNER JOIN "users" ON "comments".user_id = "users".id WHERE (("users".user_id = …
我正在使用Postgres,并且我需要将大量行插入到数据库中,这些行仅在递增的整数方面有所不同.原谅可能是一个愚蠢的问题,但我不是一个数据库大师. 是否可以直接输入将使用循环以编程方式插入行的SQL查询?
我正在尝试做的伪代码示例:
for i in 1..10000000 LOOP
INSERT INTO articles VALUES(i)
end loop;
Run Code Online (Sandbox Code Playgroud) 通常更好的做法(以及为什么)验证模型或数据库定义中的属性?
对于(一个微不足道的)例子:
在用户模型中:
validates_presence_of :name
Run Code Online (Sandbox Code Playgroud)
与迁移相比:
t.string :name, :null => false
Run Code Online (Sandbox Code Playgroud)
一方面,将其包含在数据库中似乎更能保证不会出现任何类型的坏数据.另一方面,将其包含在模型中会使事情更加透明,更易于理解,方法是将其分组到代码中.其余的验证.我也考虑过两者兼顾,但这似乎既不干,也不易维护.
我有一个仅在视图中使用的常量,但它在不同的地方以不同的方式使用.它是一个选项名称数组,用于选择框,但我也在其他视图中使用它来查看是否在此数组中找到字符串,并相应地做出响应.
处理此问题以保持干燥的最佳方法是什么?
我最初在帮助器中创建了一个常量,但在视图中似乎无法访问.
我已经切换到在帮助器中创建一个方法,除了返回常量之外什么都不做.然而,这似乎违背了Rails的精神,因为现在基本上我使用的是较低的常量.
我当然可以把它放在一个模型中,但它与任何模型都没有任何关系.
这可能是一个非常简单的问题,所以提前道歉,但我对数据库的使用非常新.
我想让Postgres在多个连接表中运行全文搜索.想象一下像模型用户,具有相关模型UserProfile和UserInfo.搜索仅适用于用户,但包含来自UserProfile和UserInfo的信息.
我打算在搜索中使用杜松子酒索引.但是,我不清楚我是否需要在User表中使用单独的tsvector列来保存表中的聚合tsvector,并设置触发器以使其保持最新.或者,如果可以创建没有tsvector列的索引,只要任何相关表中的任何相关字段发生更改,它就会保持最新状态.此外,任何关于创建所有这些的命令的语法的提示也将非常受欢迎.
我正在使用Ruby on Rails,但我认为这个问题比这个更广泛,并且通常适用于数据库设计.
何时将单个模型拆分为多个表是个好主意?例如,假设我有一个User模型,并且模型中的字段数实际上已经开始累加.例如,用户可以进入他的网站,他的生日,他的时区,他的等等.
分割模型是否有任何优点或缺点,例如,User表可能只有登录和电子邮件等基本信息,然后每个用户都有另一个表,如UserInfo,另一个表是UserPermissions,以及另一个是UserPrivacySettings或类似的东西?
编辑:要为此添加额外的光泽,除了特定于它们的页面外,很少访问大多数字段.例如,只有在有人点击用户的个人资料时才会访问生日等内容.此外,一些领域(很少被访问)有可能非常大.大多数字段都可能设置为空白或为零.