我有一个名为Buyable的基于STI的模型,有两个模型Basket和Item.这里可购买的关注属性是:
篮子和物品之间存在亲子关系.对于篮子,parent_id总是为零,但是通过引用唯一的篮子ID,项目可以属于篮子.因此,篮子有很多物品,而物品属于一个篮子.
我需要一个篮子模型的方法:
如果表中有任何其他具有相同数量和类型的项目的篮子,则返回true.当项目共享相同的shop_week_id和location_id时,它们被认为是相同的类型.
例如:
给出一个篮子(uid = 7)有2个项目:
项目#1
项目#2
如果表中有任何其他篮子包含正好2个项目,则返回true,其中一个项目具有shop_week_id = 13且location_id = 103,另一个项目具有shop_week_id = 13和location_id = 204.否则返回false.
你会如何解决这个问题?这是不言而喻的,但我正在寻找一个非常有效的解决方案.
我rails s在ubuntu中运行时遇到问题.当我键入rails s它不启动服务器,但它给我这个消息:
kyala@ubuntu:~/depot$ rails s
Usage:
rails new APP_PATH [options]
Options:
-r, [--ruby=PATH] # Path to the Ruby binary of your choice
# Default: /home/kyala/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
-d, [--database=DATABASE] # Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db)enter code here
# Default: sqlite3
-b, [--builder=BUILDER] # Path to an application builder (can be a filesystem path or URL)
-m, [--template=TEMPLATE] # Path to an application template (can be a filesystem path or URL)
[--dev] # Setup the application with …Run Code Online (Sandbox Code Playgroud) 我正在尝试配置Capistrano在两个不同的服务器上执行相同的任务,每个服务器都有不同的凭据.我想做同样的事情:
namespace :deploy do
role :db, "192.168.1.1", :credentials => "db1.yml"
role :db, "192.168.1.1", :credentials => "db2.yml"
task :mytask, :roles => :db do
credentials = YAML.load_file(something)
...
Run Code Online (Sandbox Code Playgroud)
那可能吗?我应该替换什么something,才能访问当前的服务器配置?
我在网上发现了很多东西,但它们对我不起作用.我错过了什么.
在我的控制器中我有
@t = ["a","b","c"]
Run Code Online (Sandbox Code Playgroud)
在'回调'的erb文件中,@ t呈现如下:
["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)
我已经完成了黑客攻击以取代"正确的'符号.我已经读过to_json应该可以工作,但它没有.以下不起作用["a","b","c"].to_json.结果是一样的.
是否有已知的解决方案在Webdriver,Ruby绑定中执行Eval(Javascript执行)?
相当于Java中的以下示例.
WebElement element = driver.findElement(By.id( "foo" ));
String name = (String) ((JavascriptExecutor) driver).executeScript(
"return arguments[0].tagName" , element)
Run Code Online (Sandbox Code Playgroud) 在rails应用程序中,我有一个哈希数组,我可以轻松地排序
array_of_hashes.sort_by { |hash| hash[:key_to_sort] }
Run Code Online (Sandbox Code Playgroud)
但是,如果不是每个阵列成员都有一个键:key_to_sort呢?然后排序将失败"String与nil的比较失败".有没有办法让排序继续下去?或者还有另一种方法吗?
我需要检查我当前的时间是否在指定的时间间隔(明天晚上9点到明天上午9点)之间.如何在Ruby on Rails中完成.
提前致谢
当我尝试rails s在我的Rails 3.1应用程序上进行操作时,我得到了:
/Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
/Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/eventmachine-0.12.10/lib/rubyeventmachine.bundle: [BUG] Segmentation fault
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]
-- control frame ----------
c:0038 p:-17557387368028 s:0124 b:0124 l:000123 d:000123 TOP
c:0037 p:---- s:0122 b:0122 l:000121 d:000121 CFUNC :require
c:0036 p:0012 s:0118 b:0118 l:000102 d:000117 BLOCK /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240
c:0035 p:0005 s:0116 b:0116 l:000107 d:000115 BLOCK /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223
c:0034 p:0045 s:0114 b:0114 l:000113 d:000113 METHOD /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640
c:0033 p:0041 s:0108 b:0108 l:000107 d:000107 METHOD /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223
c:0032 p:0019 s:0103 b:0103 l:000102 d:000102 METHOD /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240 …Run Code Online (Sandbox Code Playgroud) 运行请求rspec规范时,我开始看到以下输出:
cache: [GET /login] miss
cache: [GET /javascripts/jquery.min.js?1317513028] miss
Run Code Online (Sandbox Code Playgroud)
Normaly我会得到绿点用于传递测试和红色Fs以及错误消息的一些信息.
有没有办法从输出中禁用缓存未命中消息?
我有如下模型:用户has_many目标,目标has_many任务,任务has_many day_tasks.我正在尝试编写一个找到所有day_tasks的方法
:target_date == Date.today(target_date处于day_tasks表中的列).我想把结果放到@day_tasks数组中.
我的代码:
@user = current_user
@day_tasks = DayTask.find { |x| x.task.goal.user == @user && x.target_date == Date.today }
Run Code Online (Sandbox Code Playgroud)
此代码仅返回符合这些条件的第一条记录.我也尝试使用DayTasks.where方法在大括号中使用相同的代码,但我只是"错误的参数数量(0表示1)"错误.有人可以解释为什么我的方法只返回第一次出现以及.find和.where之间究竟有什么区别?