我有一个select字段,我想在其中放一个名为name的自定义属性,我试着这样做:
<%= f.association :in_charge, :collection => User.lawyer.map{ |l| [l.name, l.id, {:name => l.name.downcase}] } %>
Run Code Online (Sandbox Code Playgroud)
它工作并生成额外的属性,但是存在问题,选择值属性变为模型名称属性,在本例中为l.name.我更改了地方并首先放置了l.id但是显示了id属性,它们是重复的,任何想法为什么会发生这种情况?
是否有另一种方法可以在关联选择字段中定义自定义属性?
我正在使用Rails多态关联,这样一些模型有很多cash_histories孩子,像这样:
has_many :cash_histories, as: :cashable
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从父母那里删除所有现金历史时@resource,如下所示:
@resource.cash_histories.delete_all
Run Code Online (Sandbox Code Playgroud)
我得到以下查询:
UPDATE "cash_histories" SET "cashable_id" = NULL WHERE "cash_histories"."cashable_id" = $1 AND "cash_histories"."cashable_type" = $2 [["cashable_id", 1], ["cashable_type", "ServiceOrder"]]
Run Code Online (Sandbox Code Playgroud)
我无法理解这种行为,将关系id设置为null而不是删除,这将导致我的表中出现死行.为什么会这样?
我正在使用Rails 4.1.
activerecord ruby-on-rails rails-activerecord ruby-on-rails-4.1
所以我在我的数据库中获取图像url,通过AJAX获取数据并加载如下图像:(更新以显示所有步骤)
//GET urls from server
$.get("/homeBanners", null, function(data){
$.each(data, function(i, banner){
console.log(i);
generateSlide(banner, i);
});
});
//Generate a slide for loaded URL
function generateSlide(banner, index){
var li = $('<li>').attr('data-target', '#slideCarousel').attr('data-slide-to', index);
var div = $('<div>').attr('class', 'item');
if(index == 0){
li.addClass('active');
div.addClass('active')
}
li.appendTo('.carousel-indicators');
div.appendTo('.carousel-inner');
var img = $('<img />').attr('src', banner.image_url).on('load', function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
alert('broken image!');
} else {
//div.append(img);
img.appendTo(div);
//$('#slideCarousel').before('<div id="nav"></div>').carousel().removeClass('hidden');
$('#slideCarousel').carousel().removeClass('hidden');
}
});
}
Run Code Online (Sandbox Code Playgroud)
代码运行正常,图像看起来很好.但是在firefox中,tab加载微调器永远不会停止.在Chrome中,问题不会发生.
如果我评论追加线:
//img.appendTo(div); …
我想检测用户何时离开我的页面(例如打开一个新标签),这样我就可以停止倒计时了.我用它做了:
$(window).blur(function() {
//stop countdown
});
Run Code Online (Sandbox Code Playgroud)
但是我的页面中有一个Iframe,当用户点击它时,倒计时也会停止,但我不希望当有人点击Iframe时执行上述事件.
任何的想法?
更新,我正在尝试更多,基于iframe上的这个答案点击事件?:
iframeDoc = $('iframe').contents().get(0);
$(iframeDoc).click(function(){
//maybe remove blur event?
});
Run Code Online (Sandbox Code Playgroud)
更新:Tim B解决方案有效:
$(window).blur(function () {
// check focus
if ($('iframe').is(':focus')) {
// dont stop countdown
}
else {
// stop countdown
}
});
Run Code Online (Sandbox Code Playgroud)
现在,我必须在每次调用模糊事件时从Iframe中移除焦点,否则如果用户在关注Iframe后更改制表符,倒计时将不会停止.我尝试使用上述条件:
if ($('iframe').is(':focus')) {
// dont stop countdown
$("iframe").blur()
$(window).focus();
}
Run Code Online (Sandbox Code Playgroud)
但它没有用.任何的想法?
我需要制作一个网络爬虫来从网页中提取信息。我做了一项研究,发现Beautiful Soup非常出色,因为我可以解析所有文档并创建 dom 对象并迭代、提取属性等(类似于 JQuery)。
但我使用的是Python 3.2,并且没有稳定的版本(我认为根本没有,我在他们的主页上看到的只有3.1)。
所以我需要一些好的替代品。
我有一个具有day_of_week列的用户表,它是一个整数(0 ... 6).每天我都要运行一个脚本并迭代当天的用户.
那么,我是否应该使用索引标记此列以获得更快的性能?查询将始终返回总数的1/7,我担心如果我添加索引可能会产生相反的效果.想象一下,用户表中有10k-100k行.
顺便说一句,如果重要的话我会使用PostgreSQL.
所以我有一个模式:
hourPattern = re.compile('\d{2}:\d{2}')
Run Code Online (Sandbox Code Playgroud)
并与编译模式匹配
hourStart = hourPattern.match('Sat Jan 28 01:15:00 GMT 2012')
Run Code Online (Sandbox Code Playgroud)
当我打印hourStart它给我没有.有帮助吗?
javascript ×2
jquery ×2
python ×2
activerecord ×1
carousel ×1
database ×1
dom ×1
firefox ×1
forms ×1
html ×1
iframe ×1
indexing ×1
model ×1
performance ×1
postgresql ×1
regex ×1
simple-form ×1
web-crawler ×1