我很好奇人们认为对路线进行充分/彻底的测试.我工作的人似乎想要在我们的路线文件中断言每条路线,无论标准如何.我觉得这是浪费时间,但也许我错了,我不知道这有什么价值.
在某些情况下,我可以在路由中看到一些价值.我们仍然有一些响应GET和POST请求的动作,虽然我一直想要摆脱它们.我们没有任何关于lambdas或任何东西的疯狂约束,但是如果我们这样做,那似乎值得测试.
但对于正常的资源定义?
resources :foo, only: [:index, :show]
Run Code Online (Sandbox Code Playgroud)
我们断言这两条路线都存在,我们声称它们是GET并且它们会转到正确的控制器/动作.这有什么意义吗?感觉就像我们刚刚测试Rails一样.
在一个稍微相关的问题上,我更喜欢定义像上面那样的资源路径(包括only: [:index, :show]部分).resources :foo如果在该控制器上只有索引/显示操作,那么仅在路由文件中定义是否有任何后果?
在我看来,它可能只是使用更多的时间和/或内存,但它是否也是一个安全问题,或者是我不知道的非常糟糕的事情?
我已经将应用程序升级到Rails 3.1,除了图像标签没有找到图像之外,所有内容都已设置并正常工作.我已将所有图像从公共/图像移动到app/assets/images.浏览器在http:// localhost:3000/assets/foobar.png请求图像,但它只是在Chrome中显示为损坏的图像.在单独的选项卡中打开它说"没有路线匹配[GET]"/assets/foobar.png".
我觉得我只是错过了某个地方的设置,但我还没有找到它的内容.有什么建议?
当我进入OS X时,如何将lldb附加到正在运行的进程?我无法从终端窗口调试此特定应用程序,因为更改窗口将更改我正在尝试调试的某些UI状态.
当我从ssh会话中附加lldb时,它说"附加失败:丢失连接".
编辑:这不是断断续续的ssh.我没有与ssh断开连接,只是在我进入ssh会话时lldb不会附加.
我正在尝试将我的应用程序升级到Rails 3.1,并且我有很多自定义Javascript文件,我正在尝试迁移到新的资产管道.
我当前(即3.1之前的)目录结构具有类似于:
public/
foo/
model.js
controller.js
etc...
Run Code Online (Sandbox Code Playgroud)
所以,我正在尝试将它们移到lib/assets/javascripts并保持foo /子目录完整(而不是制作foo_model.js,foo_controller.js等).
在我的application.js中,我试图这样做:
//= require foo/model
Run Code Online (Sandbox Code Playgroud)
和
//= require 'foo/model'
Run Code Online (Sandbox Code Playgroud)
但这些都行不通.Rails总是给我一个错误页面并说:
couldn't find file 'foo/model.js'
Run Code Online (Sandbox Code Playgroud)
如果它们不在子目录中,我确实测试了正确包含的东西,所以我知道这不仅仅是我的lib/assets目录不在include路径中.所以我想我只是想知道是否有办法做到这一点,或者我应该只是扁平化目录并使用foo_model.js等?
我正在尝试在 OSX 上的 GTK+ 上做一些工作,但遇到了一些麻烦,因为说实话,我对 Objective-C 不太熟悉。我有足够的编程经验,可以很快掌握基本语法,并且可以在文档中查找我需要的内容。但我遇到的问题与链接库并将类暴露给我链接的程序有关。
GTK+ 是一个 C 库,但 OSX 后端包含几个 Objective-C 类。它们不作为公共 API 公开,仅在内部使用;但对于我正在做的事情,我想尝试公开这些类。
作为参考,这里是其中一个类:
https://github.com/GNOME/gtk/blob/gtk-2-24/gdk/quartz/GdkQuartzWindow.h https://github.com/GNOME/gtk/blob/gtk-2-24/gdk/quartz /GdkQuartzWindow.c
我已经更改了构建系统,以便它安装头文件。我有另一个源文件(在 gtk+ 构建系统之外),其功能如下:
GdkQuartzWindow *win = [[GdkQuartzWindow alloc] /* other messages... */ ];
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时出现链接器错误:
Undefined symbols for architecture i386:
".objc_class_name_GdkQuartzWindow", referenced from:
pointer-to-literal-objc-class-name in main-a8d029.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
我不太熟悉 Objective-C 编译器/链接器的工作原理,并且无法理解我如何(或者如果我可以)解决这个问题。
当我运行时,nm libgdk-quartz-2.0.dylib | grep GdkQuartzWindow我看到很多关于这个类的消息:
00057120 t -[GdkQuartzWindow …Run Code Online (Sandbox Code Playgroud)