小编tbk*_*tbk的帖子

如何在rails开发环境中测试500.html?

我想使用开发环境测试我的Rails应用程序中的500个错误页面.

我已经尝试过了config/environments/development.rb:

config.action_controller.consider_all_requests_local = false
Run Code Online (Sandbox Code Playgroud)

但这似乎没有任何影响.

development-environment ruby-on-rails

42
推荐指数
5
解决办法
2万
查看次数

在删除元素时,Hibernate单向OneToMany映射中的约束违反,包括JoinTable和OrderColumn

从上面描述的映射中删除元素时遇到问题.这是映射:

@Entity
@Table( name = "foo")
class Foo {

    private List bars;

    @OneToMany
    @OrderColumn( name = "order_index" )
    @JoinTable( name = "foo_bar_map", joinColumns = @JoinColumn( name = "foo_id" ), inverseJoinColumns =  @JoinColumn( name = "bar_id" ) )
    @Fetch( FetchMode.SUBSELECT )
    public List getBars() {
        return bars;
    }
}

插入Bar-instances并保存Foo工作正常,但是当我从列表中删除元素并再次保存时,违反了映射表中bar_id的唯一约束.以下SQL语句是由hibernate发布的,这看起来很奇怪:

LOG:  execute : delete from foo_bar_map where foo_id=$1 and order_index=$2
DETAIL:  parameters: $1 = '4', $2 = '6'
LOG:  execute S_5: update foo_bar_map set bar_id=$1 where foo_id=$2 and order_index=$3
DETAIL:  parameters: …

java hibernate jpa one-to-many jpa-2.0

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

调用具有相同cookie名称的HttpServletResponse.addCookie()是否安全?

正在打电话

HttpServletResponse.addCookie();
Run Code Online (Sandbox Code Playgroud)

(来自servlet-api-2.5)多次使用同名的cookie安全吗?

从某种意义上讲是安全的,有一种确定性的行为,例如后续的调用将被忽略(第一次获胜)或后续的调用将总是取代cookie或类似的东西?

例:

HttpServletResponse response = ...;
response.addCookie(new Cookie("foo", "bar"));
response.addCookie(new Cookie("foo", "42"));
Run Code Online (Sandbox Code Playgroud)

哪个值将被传输到浏览器并存储?

java servlets

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

Rails i18n中的混合语言环境

Rails以某种方式混合我的语言环境,我完全不知道为什么.我翻译的大部分字符串都按预期工作,但对于某些字符串,它会混合使用语言环境.

有趣的是,这只发生在我们的一个系统上.特别是用Apache运行Passenger.

在我的开发系统上使用Webrick,Thin或Passenger Standalone时,一切都会好起来的.

这就是我的意思application.rb:

config.i18n.default_locale = :de
Run Code Online (Sandbox Code Playgroud)

这是application_controller.rb:

before_filter :set_locale

def set_locale
  I18n.locale = @current_client ? @current_client.locale : I18n.default_locale
end
Run Code Online (Sandbox Code Playgroud)

(我体验网页上的问题,这里@current_clientnilelse部分被执行).

所以,我基本上使用的是:de语言环境.在表单上显示验证错误时,我会遇到如下混合翻译:

ist zu kurz(nicht weniger als 6 Zeichen)和翻译缺失:en.activerecord.errors.custom.password_format

如您所见,第一个失败验证的错误消息按预期转换,因为第二个错误消息尝试访问英语翻译(不存在).

我怀疑before_filter在执行获取之前延迟加载已翻译的字符串存在问题.

任何线索为什么会发生这种情况?

记录:这是Rails 3

编辑:

我刚刚发现这取决于所使用的环境.使用开发环境时,一切都很好.在使用生产环境(或类似生产)环境时,我会遇到上述行为.

编辑2:

我发现了更多:它具体取决于config.cache_classes.设置为时true,我会看到混合翻译.设置为false(如在典型的开发环境中),i18n按预期工作.

编辑3:

也许这与以下错误有关?

https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/5522

编辑4:

这与上面提到的bug有关,问题是由于急切加载的模型类,它们使用I18n字符串,但是在I18n初始化之前发生了急剧的类加载,因此找不到翻译.甚至有另一个错误:

https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/6353

不幸的是,Rails的人没有设法在最近的3.0.4版本中包含修复程序(据我所知).因此,我试图找出这样的解决方法(在我的应用程序配置中):

 config.before_eager_load do
   I18n.load_path += Dir[Rails.root.join('config', 'locales', 'de.yml').to_s]
   I18n::Railtie.reloader.paths.concat I18n.load_path
   I18n::Railtie.reloader.execute_if_updated …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails internationalization

10
推荐指数
2
解决办法
4896
查看次数

更改 Wicket 资源 URL 的 URL 前缀?

Wicket 会自动生成带有前缀“resources”(例如“http://localhost:8080/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket-ajax.js”)的资源(图像等)的 URL。是否可以将此前缀从“资源”更改为其他内容(如“res”)?

我有另一个 servlet 在“资源”下提供内容,我无法更改它(不要问......),因此我希望 Wicket 使用不同的前缀为其资源提供服务。

谢谢!

java url resources wicket servlets

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

Rails 3中的异常通知中的自定义部分

我正在尝试使用exception_notification gem的当前版本(2.4.0)在Rails 3应用程序中为我的异常通知邮件设置自定义部分

README明确指出"您可以通过在app/views/exception_notifier目录中放置部分命名部分来自定义每个部分的呈现[...]您甚至可以添加描述特定于应用程序的数据的新部分"

我正在尝试这些:改变现有部分并添加新的自定义部分.只更改一个部分时,我更改的部分(app/views/exception_notifier/_session.text.erb)无效.当我添加新的自定义部分时,我在日志中收到以下错误:

ActionView::Template::Error (Missing partial exception_notifier/user with {:formats=>
[:text], :handlers=>[:haml, :rjs, :rhtml, :builder, :erb, :rxml], :locale=>[:de]} in
view paths "/usr/lib/ruby/gems/1.8/gems/exception_notification-2.4.0/lib/exception_notifier/views"):
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我怀疑视图路径是以某种方式搞砸了,并且exception_notifier根本不打算查看我的/ app/views/exception_notifier目录.

exception-handling ruby-on-rails ruby-on-rails-3

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

Java Generics:谁是对的,javac还是Eclipse编译?

调用此方法:

public static @Nonnull <TV, TG extends TV> Maybe<TV> something(final @Nonnull TG value) {
    return new Maybe<TV>(value);
}
Run Code Online (Sandbox Code Playgroud)

像这样:

public @Nonnull Maybe<Foo> visit() {
    return Maybe.something(new BarExtendsFoo());
}
Run Code Online (Sandbox Code Playgroud)

在Eclipse中编译得很好,但是javac给出了一个"不兼容的类型"警告:

found   : BarExtendsFoo
Run Code Online (Sandbox Code Playgroud)

要求:Foo

java eclipse compiler-construction javac

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