小编Eas*_*yCo的帖子

ActiveRecord对象属性名称与方法名称相同

我正在尝试在ActiveRecord对象上调用一个方法,其中存在同名属性.这会导致SystemStackError: stack level too deep错误.

如何从方法中访问对象属性以进行修改?

def first_name

 return self.first_name.upper

end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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

创建对角链接(href)区域

假设您有50px乘50px div/box

<div style="width: 50px; height: 50px;">
</div>
Run Code Online (Sandbox Code Playgroud)

在此框中,您希望有两个链接将对角线对分

对分

你可以使用旧的地图/区域HTML,但这是不受欢迎的,因为jquery不能很好地使用它......但这是另一个故事.

我缺乏想法,非常感谢帮助/见解如何处理这种情况.

javascript css jquery html5

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

jQuery Widget Factory _trigger实例

当使用_trigger方法来触发事件时,我遇到了一个障碍,我一直在击打,但未能正确掌握.

基本上,如果我的窗口小部件有多个实例,则在同一页面上实例化的最后一个窗口小部件优先于所有其他窗口小部件.

我已经学会并成功使用$ .extend来创建一个对实例唯一的对象,但我对如何处理以下问题感到困惑:

如何正确使用_trigger方法,以便在每个实例的基础上启用它.

(function($) {
  $.widget("a07.BearCal", {
    options: {  },
    _create: function() {
        _this = this;
        this.element.click(function() {
            _this._trigger("testTrig");
        });
    },
  });
})(jQuery);

// Instantiate widget on .full
$('.full').BearCal({
    testTrig: function() {
        console.log("testTrig event: full");
    }
});

// Instantiate widget on .mini
$('.mini').BearCal({
    testTrig: function() {
        console.log("testTrig event: mini");
    }
});
Run Code Online (Sandbox Code Playgroud)

此处示例:http://jsfiddle.net/NrKVP/13/

javascript jquery jquery-ui jquery-ui-widget-factory

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

EmberJS:在模板中呈现get/set的计算属性

这是我的代码的简化版本,但它仍然说明了我遇到的问题.我正在尝试使用textValue绑定计算的属性值.

请注意,我知道我可以像这个小提琴那样做基本但这不符合我的需要.

在此代码的大版本中,未在此处说明,我value在进行设置和修改之前执行修改text.这就是为什么我不能只使用上面提到的默认绑定的要点.

JS

var App = Ember.Application.create();

App.ApplicationController = Ember.Controller.extend({
    text: "Default",
    textValue: function(key, value) {
        if(arguments.length === 1) {
            return this.get('text');
        } else {
            this.set('text', value);
        }
    }.property('text')
});
Run Code Online (Sandbox Code Playgroud)

HTML

<script type="text/x-handlebars" data-template-name="application">
    {{input value=textValue}}
    <br>   
    TextValue: {{textValue}}
</script>
Run Code Online (Sandbox Code Playgroud)

小提琴

提前致谢!

javascript ember.js

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

Rails Thread.current []和线程安全

我就是这样,对吧.只是看一些代码,突然研究点点滴滴,我的眼受体被陌生人攻击了.我像:

什么!!!这就是全部!

无论如何,我看到的是(来源):

def authenticate_user!
  if doorkeeper_token
    Thread.current[:current_user] = User.find(doorkeeper_token.resource_owner_id)
  end

  # ...
end
Run Code Online (Sandbox Code Playgroud)

所以看了一会儿之后,想一想:

Wtf是这种Thread.current[]疯狂吗?这甚至是必要的吗?它甚至试图做什么?

在我看来,这有点像向后戴棒球帽:你可能看起来很酷,但太阳眩光正在赢.然后我决定到谷歌周围,阅读一些文章和一些SO.

似乎没有简洁地回答我的问题:鉴于代码的上下文,它是否与以下内容不同:

def authenticate_user!
  if doorkeeper_token
    @current_user = User.find(doorkeeper_token.resource_owner_id)
  end

  # ...
end
Run Code Online (Sandbox Code Playgroud)

如果没有,那么什么情况/场景有用/防范?

我希望你喜欢我的故事,并希望贡献一个令人敬畏的结局.

ruby ruby-on-rails thread-safety

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

Ember 简单身份验证测试 window.location.reload

我让 ESA 与 Ember 2.0.1 配合良好,但在测试时偶然发现了一个有趣的案例:

给出以下测试:

import Ember from 'ember';
import { module, test } from 'qunit';
import startApp from 'notifier/tests/helpers/start-app';
import Pretender from 'pretender';
import { authenticateSession } from '../../helpers/ember-simple-auth';

let server;
let application;

module('Acceptance | signout', {
  beforeEach: function() {
    application = startApp();
  },

  afterEach: function() {
    Ember.run(application, 'destroy');
    server.shutdown();
  }
});

test('successfully sign out and get redirected', function(assert) {

  server = new Pretender(function() {
    this.post('/oauth/revoke', function() {
        return [200, {"Content-Type": "application/json"}];
    });
  });

  authenticateSession(application);
  visit('/admin');
  click('#sign-out'); …
Run Code Online (Sandbox Code Playgroud)

phantomjs ember.js ember-cli ember-simple-auth

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