我正在通过一个rspec教程(peepcode教程).我生成了一些脚手架,我希望有人可以帮助解释如何重新编写描述以便为新手阅读更清楚一些.
describe "POST create" do
describe "with valid params" do
it "assigns a newly created weather as @weather" do
Weather.stub(:new).with({'these' => 'params'}) { mock_weather(:save => true) }
post :create, :weather => {'these' => 'params'}
assigns(:weather).should be(mock_weather)
end
end
Run Code Online (Sandbox Code Playgroud)
这行代码是我试图理解的这一行
Weather.stub(:new).with({'these' => 'params'}) { mock_weather(:save => true) }
Run Code Online (Sandbox Code Playgroud)
我从未见过将方法放在括号内.这究竟意味着什么?
{ mock_weather(:save => true) }
Run Code Online (Sandbox Code Playgroud) 这实际上是一个关于命名约定的问题.
我有一个名为PromotedEvents的模型
该文件名为promote_events.rb
我创建了表:
create_table :promoted_events do |t|
Run Code Online (Sandbox Code Playgroud)
现在我在创建任何东西时遇到了问题,所以我想知道使用带有两个单词的模型是否有问题
我在控制台并尝试过
a = PromotedEvents.new
a = Promoted_Event.new
a = promoted_event.new
Run Code Online (Sandbox Code Playgroud)
并继续收到nameerror : uninitialized constant错误
有任何想法吗?
我有一个像这样的简单链接: <a href="?wp_accept_function=10">Accept</a>
我的想法是,这将运行一个名为wp_accept_function的函数,并传入10的id,我该怎么做?谢谢
这是我到目前为止的代码,但我觉得我出错了,需要将数字传递给函数,然后才能在函数中使用它.谢谢
if ( isset ( $_GET ['wp_accept_function'] ) )
{
function wp_accept_favor ( $id )
{
// JAZZ
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MinGW和eclipse在Windows上构建一个项目.我正在使用SDL库但是当我尝试编译它时,我得到了错误
g++ -Wl,-subsystem,windows -oplikoo.exe src\mouse.o src\camera.o src\Timer.o src\Pegs.o src\Graphics.o src\FPS.o src\Ball.o -lmingw32 -lSDLmain -lSDL.dll -lSDL_image -lSDL_mixer
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main':
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c:315: undefined reference to `SDL_main'
Run Code Online (Sandbox Code Playgroud)
我知道main必须有int main(int argc, char *argv[])签名,并且#include <SDL.h>在该文件中,但它仍然无效.
我最近越来越多地看到这个错误.我在Ubuntu 10.10上使用Chrome开发者频道浏览器.当我刷新网页时 - dev_appserver似乎挂起了.超时后,如果完成请求.
如果我在appserver终端窗口中键入CTRL-C,它似乎在显示此反向跟踪后"解锁"服务器:
Exception happened during processing of request from ('192.168.1.19', 48238)
Traceback (most recent call last):
File "/usr/local/lib/python2.5/SocketServer.py", line 222, in handle_request
self.process_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 241, in process_request
self.finish_request(request, client_address)
File "/usr/local/lib/python2.5/SocketServer.py", line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line 3123, in __init__
BaseHTTPServer.BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
File "/usr/local/lib/python2.5/SocketServer.py", line 522, in __init__
self.handle()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 316, in handle
self.handle_one_request()
File "/usr/local/lib/python2.5/BaseHTTPServer.py", line 299, in handle_one_request
self.raw_requestline = self.rfile.readline()
File "/usr/local/lib/python2.5/socket.py", line 346, …Run Code Online (Sandbox Code Playgroud) 我正在尝试直接从zip文件将图像文件附加到模型(即,不先将它们保存在磁盘上).似乎应该有一种更清晰的方法将ZipEntry转换为Tempfile或File,它可以存储在内存中,以传递给另一个知道如何处理它的方法或对象.
这是我的代码:
def extract (file = nil)
Zip::ZipFile.open(file) { |zip_file|
zip_file.each { |image|
photo = self.photos.build
# photo.image = image # this doesn't work
# photo.image = File.open image # also doesn't work
# photo.image = File.new image.filename
photo.save
}
}
end
Run Code Online (Sandbox Code Playgroud)
但问题是photo.image是一个附件(通过回形针)到模型,并指定一些东西作为附件需要一些东西作为File对象.但是,我不能为我的生活弄清楚如何将ZipEntry转换为文件.我看到打开或创建文件的唯一方法是在其路径中使用字符串 - 这意味着我必须将文件解压缩到一个位置.真的,这看起来很傻.为什么我不能将ZipEntry文件解压缩到输出流并将其转换为文件?
所以最终的问题是:我可以从Zip文件中提取ZipEntry并将其直接转换为File对象(或直接将其作为Paperclip对象附加)吗?或者在我可以附加它之前,我实际上是将它存放在硬盘驱动器上,即使该版本最终会被删除?
更新 感谢蓝莓领域,我认为我更接近我的解决方案.这是我添加的代码行,它为我提供了我需要的Tempfile/File:
photo.image = zip_file.get_output_stream image
Run Code Online (Sandbox Code Playgroud)
但是,我的Photo对象不会接受传递的文件,因为它不是image/jpeg.实际上,检查content_type文件显示application/x-empty.我想这可能是因为获取输出流似乎在文件的末尾添加了一个时间戳,因此最终看起来像imagename.jpg20110203-20203-hukq0n. 编辑:此外,它创建的临时文件不包含任何数据,大小为0.所以看起来这可能不是答案.
那么,接下来的问题:有没有人知道如何让它给我一个image/jpeg文件?
更新:
我一直在玩这个.似乎输出流不是要走的路,而是输入流(这总是让我很困惑).在ZipEntry上使用get_input_stream,我在文件中获取二进制数据.我想现在我只需要弄清楚如何将它变成Paperclip附件(作为File对象).我已经尝试将ZipInputStream直接推送到附件,但当然,这不起作用.我真的很难相信没有人试图将提取的ZipEntry转换为文件.有什么理由认为这会被认为是糟糕的编程习惯吗?在我看来,跳过临时文件的磁盘写入是完全可以接受的,并支持Zip档案管理.
无论如何,问题仍然存在:
有没有办法将输入流转换为File对象(或Tempfile)?最好不必写入磁盘.
我需要从名称包含特殊字符的文件夹中的文件中导入函数,文件本身也包含特殊字符。我无法更改名称以解决此问题。在这种情况下如何执行输入?
我正在尝试编写一个简单的存储过程,它将清除当前数据库中某些表的内容- 我通过将前缀与 information_schema 中的表列表进行匹配来完成此操作:
delimiter $$
create procedure local_flush_cache(db varchar(255))
begin
select @str_sql:=concat('delete from ',group_concat(table_name))
from information_schema.tables
where table_schema=db and table_name like 'cache_%';
prepare stmt from @str_sql;
execute stmt;
drop prepare stmt;
end$$
delimiter ;
Run Code Online (Sandbox Code Playgroud)
我希望能够删除 db 参数并使该函数在当前活动的数据库上工作。
我想我还需要能够识别尚未选择的数据库并输出错误(以防止意外刷新所有数据库中的所有缓存表)。
我正在考虑从Rackspace 注册Cloud Sites服务,但我正在寻找任何人使用他们的ASP.NET 4'beta'计划的实践经验.我计划在MVC3中向前发展,如果ASP.NET 4在其平台上无法正常/正确运行,则无法考虑Cloud Sites服务.有没有人尝试在云站点上托管ASP.NET 4/MVC 3站点?你的经历是什么样的?
我正在寻找一种解决相对URL的方法,就像你使用页面或控件实例(MSDN Docs)一样,例如:
Page.ResolveUrl("~/common/Error.aspx");
Run Code Online (Sandbox Code Playgroud)
...但是当我只有一个HttpContext可用时,例如当我在HttpHandler中时.
我是否需要使用自定义功能,例如此处显示的功能?
或者有没有办法获得Page使用的底层函数.