小编Dav*_*vid的帖子

如何从ApplicationHelper调用ApplicationController方法

我想在视图中提供csv链接,我将csv生成代码放入ApplicationHelper.但是我收到了这个错误:

undefined method `send_data' for #<#<Class:0x0000010151c708>:0x0000010151a070>
Run Code Online (Sandbox Code Playgroud)

引用这个:

send_data content, :type => "text/plain",
  :filename => filename,
  :disposition => 'attachment'
Run Code Online (Sandbox Code Playgroud)

如果我将csv代码放在控制器中它工作正常.我希望使用帮助器来避免为每个我想为csv选项提供csv选项的控制器定义路由(我有一堆).如何send_data为助手提供(和其他必要的方法)?

ruby controller ruby-on-rails view-helpers ruby-on-rails-3

48
推荐指数
2
解决办法
3万
查看次数

-transform:在悬停时导致'闪烁'的缩放

我正在开发一个目录,该目录使用css -transform属性在悬停时缩放每个'swatch'.

这是我的问题:在某些浏览器和某些网站上,当您将鼠标悬停在样本上时,会导致页面在翻转时"闪烁".我无法解决这个问题,在一个网站上它可能是Safari的独特之处,另一个网站可能只发生在Chrome中,另一个网站则完全没问题.

希望我有更多的信息,但也许其他人遇到了类似的问题.

目录截图

.swatch {
  -webkit-box-shadow: #EFEFEF 2px 2px 0px;
  -webkit-transform: scale(1);
  -webkit-transition-duration: 0.2s;
  border: 1px solid white;
  position: relative;
  z-index: 1;

.swatch:hover {
  position:relative;
  z-index:10;
  transition-duration: 0.2s;
  transform:scale(1.8);
  -webkit-transition-duration: 0.2s;
  -webkit-transform:scale(1.8);
}
Run Code Online (Sandbox Code Playgroud)

在删除任何z-index属性时似乎也解决了问题,但是悬停样本在其他样本后面; 这对这个项目不起作用.

任何想法都表示赞赏.

html css transform z-index hover

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

条形图上的jqplot工具提示

我正在使用jquery插件jqplot来绘制一些条形图.在悬停时,我想在工具提示中显示栏的刻度及其值.我试过了

highlighter: { show: true, 
            showTooltip: true,      // show a tooltip with data point values.
            tooltipLocation: 'nw',  // location of tooltip: n, ne, e, se, s, sw, w, nw.
            tooltipAxes: 'both',    // which axis values to display in the tooltip, x, y or both.
            lineWidthAdjust: 2.5   // pixels to add to the size line stroking the data point marker
            }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.酒吧视觉上变得更轻,顶部有一个小点(理想情况下会消失 - 可能来自折线图渲染器的东西),但在任何地方都没有工具提示.谁知道我怎么做到这一点?我会有很多条形,所以如果我只在那里显示它们,那么x轴将会变得杂乱无章.

javascript jquery charts graph jqplot

21
推荐指数
2
解决办法
3万
查看次数

Ruby-on-Rails:如何摆脱"你被重定向"页面

我正在重写Devise的失败响应,以便我可以设置401状态代码.但是,当用户登录失败时,会将其重定向到"正在重定向"链接的页面.如果我:status => 401从重定向中删除它,它可以正常工作.

class CustomFailure < Devise::FailureApp
    def redirect_url
      new_user_session_url(:subdomain => 'secure')
    end

    def respond
        if http_auth?
           http_auth
        else
           store_location!
           flash[:alert] = i18n_message unless flash[:notice]
           redirect_to redirect_url, :status => 401
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

编辑

或者,我想显示flash消息并保留在同一页面上,但添加以下代码行:

render :text => "unauthorized", :status => 401
Run Code Online (Sandbox Code Playgroud)

让红宝石抱怨:

undefined method `render' for #<CustomFailure:0x00000103367f28>
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事?

redirect ruby-on-rails http-status-codes devise http-status-code-401

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

Rails:money gem将所有金额转换为零

我正在尝试使用money gem在我的应用程序中处理货币,但我遇到了一个奇怪的错误.这就是我在"记录"模型中的含义:

composed_of :amount,
            :class_name => "Money",
            :mapping => [%w(cents cents), %w(currency currency_as_string)],
            :constructor => Proc.new { |cents, currency| Money.new(cents || 0, currency || Money.default_currency) },
            :converter => Proc.new { |value| value.respond_to?(:to_money) ? value.to_money : raise(ArgumentError, "Can't convert #{value.class} to Money") }
Run Code Online (Sandbox Code Playgroud)

amount是一个整数.

当我创建一个新记录时,它会忽略我在amount字段中输入的任何值,并将其默认为0.我需要在表单中添加一些内容吗?

我使用的是rails 3.0.3,而money gem版本是3.5.5

ruby rubygems currency ruby-on-rails ruby-on-rails-3

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

帮我创建一个Firefox扩展(Javascript XPCOM组件)

我一直在寻找不同的教程,我知道我很接近,但我在实现细节上迷失了,因为其中一些有点过时了,自Firefox 3以来有些事情发生了变化.我已经编写了javascript for firefox扩展,现在我需要将它变成一个XPCOM组件.

这是我需要的功能:我的Javascript文件很简单,我有两个功能startServer()stopServer.我需要startServer()在浏览器启动时和stopServer()firefox退出时运行.

编辑:

我用一个有效的解决方案更新了我的代码(感谢Neil).以下是MyExtension/components/myextension.js.

Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
const CI = Components.interfaces, CC = Components.classes, CR = Components.results;

// class declaration
function MyExtension() {}

MyExtension.prototype = {
    classDescription: "My Firefox Extension",
    classID:          Components.ID("{xxxx-xxxx-xxx-xxxxx}"),
    contractID:       "@example.com/MyExtension;1",
    QueryInterface: XPCOMUtils.generateQI([CI.nsIObserver]),

    // add to category manager
    _xpcom_categories: [{
        category: "profile-after-change"
    }],

    // start socket server
    startServer: function () { /* socket initialization code */ },

    // stop socket server
    stopServer: function () …
Run Code Online (Sandbox Code Playgroud)

javascript firefox xpcom firefox-addon

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

Rails钱宝石和表单生成器

我遇到了表格和金钱宝石的问题.

这是我的问题:

  1. 我创建了一个具有"金额"字段的记录(映射到货币对象).假设我输入10(美元).
  2. 金钱宝石将其转换为1000(美分)
  3. 我编辑相同的记录,表单预先填充金额字段为1000
  4. 如果我保存记录而不更改任何内容,它会将1000(美元)转换为100000(美分)

如何让它以美元而非美分显示预先填充的金额?

编辑:

我尝试像这样编辑_form.html:

= f.text_field(:amount, :to_money)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

undefined method `merge' for :to_money:Symbol
Run Code Online (Sandbox Code Playgroud)

forms rubygems currency ruby-on-rails formbuilder

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

帮助多线程Core Data应用程序设计

替代文字

以上是我的模型的简化.我的应用程序有一个NSWindowController对象控制用户帐户实体的两个NSViewController对象.当用户登录应用程序时,他们可以通过调出相关的视图控制器来修改用户或帐户信息.在后台,我让应用程序在一个单独的线程上定期在应用程序委托中填充用户的日志.

我正在使用一个单独NSManagedObjectContext的后台线程和应用程序委托NSManagedObjectContext用于视图控制器中的数据输入.我想知道一些事情:

1)这是一个好习惯吗?我应该NSManagedObjectContext为每个视图控制器创建一个,然后在用户完成更改时合并上下文吗?

2)因为日志实体是在后台线程中创建的,所以它有自己的NSManagedObjectContext.但是,每个日志都包含来自用户帐户实体的信息,这些信息是在应用程序代理中创建的NSManagedObjectContext.这就是我提取用户的方式:

- (NSManagedObjectID*) fetchUser:(NSString*) userID {   
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];   
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"user":inManagedObjectContext:self.managedObjectContext];
    /** snip **/
}
Run Code Online (Sandbox Code Playgroud)

后台线程调用此方法如下:

NSManagedObjectID* userObjectID = [self fetchUser:userID];
NSManagedObject* userObject = [self.logsManagedObjectContext objectWithID:userObjectID];
Run Code Online (Sandbox Code Playgroud)

我在fetchUser线程安全方面做的是什么?如果其中一个视图正在修改同一个用户,是否需要在获取用户时锁定主要托管对象上下文?从这篇文章中我理解(也许是错误的)我可能不得不这样做.到目前为止,我没有遇到任何问题,但我不想留下潜在的边缘情况.

3)当其中一个视图控制器对应用程序委托进行更改时,NSManagedObjectContext它会发布一个通知,其处理方式如下:

- (void)contextDidSave:(NSNotification *)notification {
    SEL selector = @selector(mergeChangesFromContextDidSaveNotification:);
    [self.logManagedObectContext performSelector:selector onThread:backgroundThread withObject:notification waitUntilDone:NO]; …
Run Code Online (Sandbox Code Playgroud)

multithreading core-data objective-c thread-safety

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

目标C:获取有关用户空闲状态的通知

我的cocoa应用程序运行后台任务,我想在用户空闲时停止(没有键盘/鼠标输入),然后在用户再次激活时恢复.有没有办法注册空闲状态通知?

time objective-c python-idle

7
推荐指数
2
解决办法
2813
查看次数

如何删除核心数据持久性存储

我需要删除我的持久存储(按对象执行它不实用,因为我有超过100,000个对象).我试过这个:

- (IBAction)resetDatabase:(id)sender {

    NSPersistentStore* store = [[__persistentStoreCoordinator persistentStores] lastObject];

    NSError *error = nil;
    NSURL *storeURL = store.URL;

    // release context and model
    [__managedObjectContext release];
    [__managedObjectModel release];
    __managedObjectModel = nil;
    __managedObjectContext = nil;

    [__persistentStoreCoordinator removePersistentStore:store error:nil];

    [__persistentStoreCoordinator release];
    __persistentStoreCoordinator = nil;

    [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
    if (error) {
        NSLog(@"filemanager error %@", error);
    }    

     // recreate the stack
     __managedObjectContext = [self managedObjectContext];

}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试之后将实体插入商店时,我收到此错误:

This NSPersistentStoreCoordinator has no persistent stores.  It cannot perform a save operation.
Run Code Online (Sandbox Code Playgroud)

更新: 我尝试在删除持久存储之前释放MOC和MOM,但我仍然得到相同的错误.

cocoa core-data objective-c nsmanagedobjectcontext

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