我喜欢这个字符串数组的文字表达式:
%w( i can easily create arrays of words )
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一个文字来获得一个符号数组.我知道我能做到
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
Run Code Online (Sandbox Code Playgroud)
但是使用文字就好了.
抱歉这个愚蠢的问题,但我无法在任何地方找到明确的答案.
当你在git中合并两个分支时,你得到一个这样的输出:
some_file.txt | 564 ++++++++++++++--
Run Code Online (Sandbox Code Playgroud)
我认为已了解 +
并-
意味着添加和删除,但是:
什么迹象的数量代表什么? 当你几乎没有变化时,每个标志似乎代表一条线,但是当你有更多的标志时,我无法得到代表的逻辑
是某种变化的百分比?我的猜测是,符号的数量代表相对的变化量 - 但相对于什么?当前档案?整个合并?
怎么计算?是否有任何官方关于这个源?我现在对此最准确的答案是"这种表现形式不是很精确"......我只是好奇
在rails 3.2+中,您可以这样做:
SomeModel.some_scope.first_or_initialize
Run Code Online (Sandbox Code Playgroud)
这意味着您还可以:
OtherModel.some_models.first_or_initialize
Run Code Online (Sandbox Code Playgroud)
我觉得这是非常有用的,但我希望有一个first_or_build
对我的方法has_many
的关联,这将像first_or_initialize
,但还添加了一个新的纪录协会为build
在需要的时候做.
更新澄清:是的,我知道first_or_initialize
和first_or_create
.事情是,first_or_initialize
不会将初始化记录添加到关联的目标build
中,并且first_or_create
......好吧...... 创建一个记录,这不是意图.
我有一个有效的解决方案,使用关联扩展:
class OtherModel < ActiveRecord::Base
has_many :some_models do
def first_or_build( attributes = {}, options = {}, &block )
object = first_or_initialize( attributes, options, &block )
proxy_association.add_to_target( object ) if object.new_record?
object
end
end
end
Run Code Online (Sandbox Code Playgroud)
我只是想知道:
我已经做了很多次(看到很多人这样做了),但我开始怀疑它是否合适:
if @record.save
# status 200
else
# failure of validations => status 422
end
Run Code Online (Sandbox Code Playgroud)
现在我看到这422 unprocessable entity
意味着请求格式正确,但在语义上并不正确.据我了解,验证错误可能不是语义错误.
注意:我在谈论唯一性验证,因此我不确定这是否属于用户错误,如此问题:REST API服务为验证失败返回的适当HTTP状态代码是什么?
总结一下:我应该停止使用状态422吗?如果是这样,我应该使用什么呢?
我在这个rails教程中使用Rails Carrier Wave和JQuery上传,但是当我点击上传按钮时出现错误:
Error: SyntaxError: JSON.parse
Run Code Online (Sandbox Code Playgroud)
任何建议/建议都很受欢迎.
对不起这个菜鸟问题...让我们说:
class TestMe
attr_reader :array
def initialize
@array = (1..10).to_a
end
Run Code Online (Sandbox Code Playgroud)
结束
然后可以这样做:
>> a = TestMe.new
=> #<TestMe:0x00000005567228 @x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>
>> a.array.map! &:to_s
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
>> a.array
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
Run Code Online (Sandbox Code Playgroud)
编辑我在某处读到暴露数组实例变量是"坏OO".如果这是真的,为什么?
出于好奇 - 我正在阅读Relation :: QueryMethods模块的文档,并发现该方法:
def bind(value)
relation = clone
relation.bind_values += [value]
relation
end
Run Code Online (Sandbox Code Playgroud)
有谁知道这是什么?我试图自己找,但失败了.
UPDATE
我追踪@bind_values
到无底深度的使用ActiveRecord::ConnectionAdapters
- 值传递一直持续到低级SQL语句执行.似乎各个适配器可能会使用这些.我的猜测是,它与准备好的陈述有关SELECT * FROM 'table' WHERE 'field' = ?
,但我被困在这里.任何人?
首先,请原谅我的完全noobness.我真的试图找到一个解决方案,但现在我陷入困境,完全无能为力.
我正在尝试在远程服务器上部署rails 3应用程序; 在我的本地VM上开发时,没有问题显示.但现在,当我试图跑
rake db:create
Run Code Online (Sandbox Code Playgroud)
它失败了,有错误(这里翻译,因为我是法国人):
FATAL : password authentication failed for user <<mylogin>>
Run Code Online (Sandbox Code Playgroud)
这是我的database.yml:
login: &login
adapter: postgresql
username: mylogin
password: mypassword
host: localhost
port: 5432
encoding: UTF8
development:
<<: *login
database: somesite_development
test:
<<: *login
database: somesite_test
production:
<<: *login
database: somesite_production
Run Code Online (Sandbox Code Playgroud)
使用命令行工具"createuser"在postgre-side创建了用户"mylogin".它被授权创建dbs.postgresql.conf配置服务器监听localhost.我用pg_hba.conf尝试了很多东西,没有用 - 无论在127.0.0.1上用户"mylogin"使用的方法(ident,密码,md5),身份验证都失败了 - 尽管我从未遇到过连接/创建dbs的问题PSQL.
任何线索?
编辑:好的,发现我是多么令人难以置信的愚蠢...我的用户的密码根本没有设置!我想我忘记了分号了
ALTER USER xxxx WITH PASSWORD xxxx;
...我通过请求"SELECT*FROM pg_shadow;"看到了这一点. - 密码字段为空.因为这个愚蠢的错误,我浪费了三天的生命......
这是我第一次使用OpenLayers而且我不明白我做错了什么.
我尝试显示一个从GeoJSON解析的简单点.数据似乎正确解析(我用控制台检查)但无论我给出什么点,它总是显示在我猜测我的矢量图层上的LonLat(0,0)的位置.
我究竟做错了什么 ?
var map, baseLayer, placesLayer, geojsonParser ; // data below have been simplified and reformated to enhance readability var geojsonData = { "type":"Feature", "geometry": { "type":"Point", "coordinates":[-4.0280599594116,5.3411102294922] }, "properties": { "id":273, "name":"ABIDJAN" } }; $(document).ready(function(){ map = new OpenLayers.Map('map'); baseLayer = new OpenLayers.Layer.OSM(); placesLayer = new OpenLayers.Layer.Vector(); geojsonParser = new OpenLayers.Format.GeoJSON(); placesLayer.addFeatures(geojsonParser.read(geojsonData)); map.addLayers([baseLayer,placesLayer]); map.setCenter( new OpenLayers.LonLat(-4, 5.3).transform( new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject() ), 5 ); }); // document ready
arrays ×2
ruby ×2
activerecord ×1
associations ×1
carrierwave ×1
coordinates ×1
diff ×1
geojson ×1
getter ×1
git ×1
jquery ×1
json ×1
openlayers ×1
point ×1
rake ×1
relation ×1
symbols ×1
vector ×1