上下文:应用程序使用必须在config.ru中设置的Rack中间件,而不是Rails的内部中间件链.这是出于与此问题无关的原因.
问题:如何让我的测试(功能和集成)了解这个中间件?
我会举一个例子来说明问题.让我们创建一个原始的Rails 3应用程序,使用机架重写进行说明.
# /config/initializers/example.rb
Rails.application.middleware.insert 0, 'Rack::Rewrite' do
r301 '/so', 'http://stackoverflow.com'
end
# /test/integration/the_test.rb
require 'test_helper'
class TheTest < ActionDispatch::IntegrationTest
test "redirect from /so to http://stackoverflow.com" do
get '/so'
assert_redirected_to 'http://stackoverflow.com'
end
end
Run Code Online (Sandbox Code Playgroud)
如果您运行上述测试,一切都很好,使用浏览器,您可以确认访问路径/so会将您重定向到StackOverflow.
很酷,让我们现在在Rails之外设置它.删除上述文件/config/initializers/example.rb,并更改config.ru为以下内容:
# /config.ru
require ::File.expand_path('../config/environment', __FILE__)
map '/so' do
run Rack::Rewrite do
r301 '', 'http://stackoverflow.com'
end
end
map '/' do
run Deleteme::Application
end
Run Code Online (Sandbox Code Playgroud)
现在,测试将停止工作.如果您/so使用浏览器访问,该功能确实有效.只是测试不知道Rack设置.
我需要在Label中实现背景,并且可能只用一种颜色填充其中一半而另一半填充另一种颜色.什么是实现它的最佳方式?!用CSS?!或者还有另一种更简单的方法.
提前致谢
我有一个已经创建了大量控件的现有.NET应用程序.
现在我有一个新的自定义控件类 - 比如 - 按钮(继承自"Button"),带有额外的属性,方法等.编译好了,它显示在我的工具栏中.
我怎么能告诉VS我想用新的控件替换现有的控件?
我的意思是,如果我打开设计器代码并手动更改控件的类型,VS真的很不开心,而且设计中断了一个令人讨厌的错误消息.
有没有办法在不破坏VS设计的情况下更改设计器生成的代码?
或者除了手动删除每个控件并创建一个新控件之外,还有办法吗?这将是一个真正的麻烦,因为当我删除控件时,所有控件的处理程序将在表单的代码中被擦除.喜欢:
处理myControl.Click ...处理myControl.MouseHover ...等.
欢迎提示!
我想用来在文档中tikzDevice包含带注释的ggplot2图形Latex.
tikzAnnotatehelp有一个如何将它与基本图形一起使用的示例,但是如何将它与基于网格的绘图包一起使用ggplot2?挑战似乎是tikz节点的定位.
playwith包有一个功能convertToDevicePixels(http://code.google.com/p/playwith/source/browse/trunk/R/gridwork.R)似乎与grconvertX/grconvertY类似,但我无法让它工作无论是.
将不胜感激任何有关如何进行的指示.
tikz使用基本图形注释示例
library(tikzDevice)
library(ggplot2)
options(tikzLatexPackages = c(getOption('tikzLatexPackages'),
"\\usetikzlibrary{shapes.arrows}"))
tikz(standAlone=TRUE)
print(plot(15:20, 5:10))
#print(qplot(15:20, 5:10))
x <- grconvertX(17,,'device')
y <- grconvertY(7,,'device')
#px <- playwith::convertToDevicePixels(17, 7)
#x <- px$x
#y <- px$y
tikzAnnotate(paste('\\node[single arrow,anchor=tip,draw,fill=green] at (',
x,',',y,') {Look over here!};'))
dev.off()
Run Code Online (Sandbox Code Playgroud)

我正在构建一个需要与MS Access数据库通信的桌面应用程序.现在,除非我想在每台将要使用桌面应用程序的计算机上为数据库注册DSN,否则我需要一种以无DSN方式连接到数据库的方法.
我搜索了很多,并找到了一些关于如何创建连接字符串的有用链接,并基于此我尝试修改我的程序,但没有成功.以下代码失败.如果我将getConnection中的字符串切换为"jdbc:odbc:sampleDB"它可以正常工作,但这是使用DSN而不是我想要实现的.
如何在java中编写和使用连接字符串以建立与MS Access数据库的无DSN连接?
private Connection setupConnection() throws ClassNotFoundException,
SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("Driver={Microsoft Access Driver (*.mdb)} &_ Dbq=c:\\as\\sampleDB.mdb");
return con;
}
Run Code Online (Sandbox Code Playgroud)
另外:我还想指出,如果有人想知道如何通过DSN连接实现我的要求,我会很乐意听取它!
我想知道如何(如果可能的话)使用实体框架关联来自不同数据库的表.我有一个edmx用于我的"xyz"数据库,另一个用于我的"abc"我需要使用EF关联它们.我知道如何使用FK解决这个问题,但这不是我想要的,我希望能够使用可视化编辑器,而不是手动将FK添加到我的数据库中.
这是我想要完成的一个实际例子:
表用户 - 数据库:abc
表消息 - 数据库:xyz
我想将User与Message关联起来,反之亦然.
谁能帮助我?
谢谢!
而不是调用av_register_all(),是否有一个选择使用单个解码器的例子?我想我必须调用avcodec_register(),av_register_codec_parser()等...
问题是,应该调用哪些函数,因为如果我不使用av_register_all(),av_open_input_file()将失败-2.
我有文本文件,我需要逐行获取数据.因此,如果我的应用程序启动,它可以从文本文件中读取以显示信息.但我不想单独提供我的文本文件和我的应用程序.这该怎么做?好吧,我必须使用Qt这样做!
我听说使用xml将是一种更好,更简单的方法来实现这一目标.
我想有一个EditText和ImageView彼此相邻; 所述ImageView具有固定的宽度,所述EditText应该采取的其余部分.
我尝试通过
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText android:id="@+id/edit_select_stop" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:layout_gravity="center_vertical"
android:layout_width="39dp" android:minWidth="39dp"
android:layout_height="wrap_content" android:src="@drawable/icon_time"
android:id="@+id/image_select_time"></ImageView>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
但现在,EditText占据了整个宽度并覆盖了Image.
如何在ImageView之前实现EditText"结束"?