我想ActiveRecord通过表中的非id列进行查找.当我向你提供我的代码示例时,希望这很清楚.
class CoachClass < ActiveRecord::Base
belongs_to :coach
end
class Coach < ActiveRecord::Base
has_many :coach_classes, :foreign_key => 'user_name'
end
Run Code Online (Sandbox Code Playgroud)
当我这样做时
coach_obj.coach_classes,这正确地触发了
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 2)
Run Code Online (Sandbox Code Playgroud)
(2是教练在id这里,这是我的问题.)
我想让它触发
SELECT * FROM `coach_classes` WHERE (`coach_classes`.user_name = 'David')
Run Code Online (Sandbox Code Playgroud)
('大卫'是那个教练的user_name)
user_name 是唯一的,并存在于两个表中.
出于某种原因coach_id,我不想在我的coach_classes桌子上.
activerecord ruby-on-rails foreign-key-relationship has-many belongs-to
我试图删除一些记录,但我收到以下错误:
无法删除或更新父行:外键约束失败
问题是,我希望删除的100条记录中只有1或2条中的外键约束失败.我希望编写一个删除这些98-99记录的查询,跳过失败的1或2记录,稍后我可以手动检查和删除/修改.不是因为一些有问题的记录而停止,而是继续其他人,忽略了这一点.
有一个巧妙的方法来做到这一点?
我想测试rake任务中定义的方法.
耙文件
#lib/tasks/simple_task.rake
namespace :xyz do
task :simple_task => :environment do
begin
if task_needs_to_run?
puts "Lets run this..."
#some code which I don't wish to test
...
end
end
end
def task_needs_to_run?
# code that needs testing
return 2 > 1
end
end
Run Code Online (Sandbox Code Playgroud)
现在,我想task_needs_to_run?在测试文件中测试这个方法我该怎么做?
附加说明:理想情况下,我希望在rake任务中测试另一个私有方法......但我可以稍后再担心.
我正试图消除DLS_DEAD_LOCAL_STORE的误报
这是我到目前为止所尝试的:
@SuppressWarnings("DLS_DEAD_LOCAL_STORE")
Run Code Online (Sandbox Code Playgroud)
@edu.umd.cs.findbugs.annotations.SuppressWarnings("DLS_DEAD_LOCAL_STORE")
(基于SuppressWarnings不适用于FindBugs)
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "DLS_DEAD_LOCAL_STORE", justification = "please go away")
基于http://osdir.com/ml/java-findbugs-general/2010-06/msg00017.html
但是这些选择都没有帮助.请指教.使用Eclipse Indigo.
我想匹配一个有3个参数的方法:一个String,一个Long和一个customObject
测试应该与String 完全匹配,确保Long为null并确保传递的自定义对象的类型正确.
就像是:
EasyMock.expect(mockClass.myMethod(
EasyMock.eq("exact string"),
EasyMock.isA(Long.class),
EasyMock.isA(CustomObject.class)));
Run Code Online (Sandbox Code Playgroud)
这可能不正确地匹配方法,因为Long应该为null.
我不能放,EasyMock.isNull()因为它将是一个特定的匹配和泛型和细节不能一起去.有小费吗 ?
我有两个表accounts和subs.
第一台具有id与第二表有田id,requester_account_id,grabber_account_id
我想要计算帐户制作了多少个子请求,以及他做了多少抓取(基于是否requester_account_id/grabber_account_id填充了他的id)
在一个查询中
输出:
+------------+----------------+-----------------+
| account_id | subs_requested | subs_grabbed |
+------------+----------------+-----------------+
| 1 | 4 | 3 |
| 3 | 2 | 1 |
+------------+----------------+-----------------+
Run Code Online (Sandbox Code Playgroud) 我有时间在我的控制器中执行任务,我想在我的视图中触发一个简单的进度条/进度状态.
在我的控制器中我有类似的东西
threads = []
total.times do |x|
Thread.new {
the_time_taking_task(x)
#Something here to trigger the progressbar in the view
}
end
threads.each { |aThread| aThread.join }
render :action => 'some_action'
Run Code Online (Sandbox Code Playgroud)
我不能在那里放一个渲染,因为它会抛出一个双渲染错误.我尝试放一个渲染并返回那里,我得到了return can't jump across threads'错误
我正在尝试渲染,因为它似乎是我的控制器可以查看的唯一方式.我的方法有误吗?
想要通过该调用应用进度条宽度的视图中需要这样简单的东西
<div style="width: <%= (percent_val)%>px; ">
Run Code Online (Sandbox Code Playgroud)
请指教.
java ×2
mysql ×2
unit-testing ×2
activerecord ×1
belongs-to ×1
easymock ×1
findbugs ×1
foreign-keys ×1
has-many ×1
join ×1
progress-bar ×1
rake ×1
rake-task ×1
render ×1
sql ×1
sql-delete ×1
testing ×1