小编Mir*_*318的帖子

将多个约束连接到单个插座

我有一堆物体,彼此间隔相等.为3.5英寸屏幕正确设置约束,但对于4英寸屏幕,我希望它们更远(即每个对象之间的距离仍然相同,但更大).

我目前以编程方式更改约束,如下所示:

self.usernameVerticalSpace.constant = 256;
Run Code Online (Sandbox Code Playgroud)

但是,如果例如8个约束将保持彼此完全相同,但所有约束都立即增加,似乎应该有一种方法来做到一个出口,而不是8个单独的出口.有没有办法将所有这些约束链接到一个插座,所以我只需要更改一个值?

xcode constraints iboutlet

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

按值排序哈希然后按键排序(但键是相反的)

标题说明了一切.

total = {"Bob"=>37, "Alice"=>42, "Carl"=>42}
Run Code Online (Sandbox Code Playgroud)

我想按值排序,然后按键排序,但按键降序排序.

像这样:

{"Bob"=>37, "Carl"=>42, "Alice"=>42}
Run Code Online (Sandbox Code Playgroud)

我试过了:

return total.sort_by { |k, v| [v, k] }
Run Code Online (Sandbox Code Playgroud)

但是从这里我不知道如何逆转k......

ruby sorting

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

rake db:seed什么都不做

我做了一个小db/seeds.rb文件:

web = Website.find_or_create_by(id: 1) do |w|
  w.website = "http://example.dev/"
  w.banner_msg = "Hey! Banner message!"
  w.signup_msg = "Wahey! Sign up message!"
  w.bg_col = "#333"
  w.txt_col = "#EEE"
  w.btn_col = "#999"
end

pub = Publisher.find_or_create_by(id: 1) do |p|
  p.phone = "021 111 1111"
  p.website = web
end

User.find_or_create_by(id: 1) do |u|
  u.email = 'email@email.com'
  u.password = 'password'
  u.first_name = 'Joe'
  u.last_name = 'Bob'
  u.publisher = pub
end

User.create(id: 5, email: "hello@ds.dfs")
Run Code Online (Sandbox Code Playgroud)

当我运行时rake db:seed,终端只接受命令并呈现一个新行,没有错误消息,没有"rake abort!",没有.

当我检查Rails控制台中的字段时,那里什么也没有.发生了什么?

ruby-on-rails seeding ruby-on-rails-4

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

“icalendar.publish”方法有什么作用?

在 icalendar gem 的自述文件中,他们有以下示例代码:

cal = Icalendar::Calendar.new
cal.event do |e|
  e.dtstart     = Icalendar::Values::Date.new('20050428')
  e.dtend       = Icalendar::Values::Date.new('20050429')
  e.summary     = "Meeting with the man."
  e.description = "Have a long lunch meeting and decide nothing..."
  e.ip_class    = "PRIVATE"
end

cal.publish
Run Code Online (Sandbox Code Playgroud)

什么是cal.publish方法吗?没有它的文档,源代码只显示了这一点:

def publish
  self.ip_method = 'PUBLISH'
end
Run Code Online (Sandbox Code Playgroud)

那没有帮助——有什么用ip_method??

如果有人可以解释这一点,那将是一个很大的帮助。

icalendar ruby-on-rails

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

Ruby-unpack哈希到参数列表中

我怎么转

arg2 = {a: "a", b: "b"}
method(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)

进入这个:

method(arg1, a: "a", b: "b")
Run Code Online (Sandbox Code Playgroud)


背景


我正在尝试创建一个doublein RSpec,它接受这样的参数:

let(:dummy_obj) do
  [ double("my dummy object", name: "Mr. Jo", height: "10ft", etc) ]
end
Run Code Online (Sandbox Code Playgroud)

第一个arg是double对象的名称,之后你可以添加任意数量的键值对,这些键值对成为double的方法(例如dummy_obj.height()将返回"10ft").

我有一个我想要使用的巨大JSON哈希,其中JSON中的每个第一级字段都成为double中的方法.所以,我希望有一些类似的东西*array解压缩哈希中的每个项目,因为它是自己的哈希.

ruby rspec hashmap parameter-passing

0
推荐指数
1
解决办法
1533
查看次数

Factorybot无法识别任何属性-“缺少方法”错误

我最近升级了许多宝石,从那时起,我无法运行Rails服务器,控制台或rspec。

这是我看到的错误日志:

NoMethodError:
  undefined method 'name' in 'book' factory
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/definition_proxy.rb:97:in `method_missing'
# ./spec/factories/books.rb:3:in `block (2 levels) in <top (required)>'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/syntax/default.rb:18:in `instance_eval'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/syntax/default.rb:18:in `factory'
# ./spec/factories/books.rb:2:in `block in <top (required)>'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/syntax/default.rb:49:in `instance_eval'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/syntax/default.rb:49:in `run'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/syntax/default.rb:7:in `define'
# ./spec/factories/books.rb:1:in `<top (required)>'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/find_definitions.rb:20:in `block (2 levels) in find_definitions'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/find_definitions.rb:19:in `each'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/find_definitions.rb:19:in `block in find_definitions'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/find_definitions.rb:15:in `each'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/find_definitions.rb:15:in `find_definitions'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot-5.0.2/lib/factory_bot/reload.rb:6:in `reload'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot_rails-5.0.2/lib/factory_bot_rails/reloader.rb:25:in `block in build_reloader'
# /Users/regan/.rvm/gems/ruby-2.6.3/gems/factory_bot_rails-5.0.2/lib/factory_bot_rails/reloader.rb:35:in `block in register_reloader'
# …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-5 factory-bot

0
推荐指数
1
解决办法
214
查看次数

Rails ||= 用于空字符串

以下代码不会更改变量:

@my_var = ''
@my_var ||= 'This is a non-empty string'
Run Code Online (Sandbox Code Playgroud)

有什么好的/干净的方法可以做到这一点,以便覆盖空字符串?

ruby ruby-on-rails

-2
推荐指数
1
解决办法
103
查看次数