我的rails 3 app有问题
在我看来,我有
<%= button_to("Accept Post", {}, {:confirm => "Are you sure?", :method => :accept_question, :remote => true}) %>
生成的html是
<form method="post" action="/questions/show/1" data-remote="true" class="button_to">
<div>
<input data-confirm="Are you sure?" type="submit" value="Accept Post" />
<input name="authenticity_token" type="hidden" value="Rv1CbqkE+61Fn4wb836eOENjyGkNpzzRrwMTywLZPf0=" />
</div>
</form>
我的宝石文件正在加载
gem 'jquery-rails'
以下.js文件出现在生成的html
<script src="/javascripts/jquery.js?1309961714" type="text/javascript"></script>
<script src="/javascripts/jquery-ui.js?1309961714" type="text/javascript"></script>
<script src="/javascripts/jquery-ui.min.js?1305044364" type="text/javascript"></script>
<script src="/javascripts/jquery.min.js?1309961714" type="text/javascript"></script>
<script src="/javascripts/jquery.tools.min.js?1309338309" type="text/javascript"> </scipt>
<script src="/javascripts/rails.js?1309961714" type="text/javascript"></script>
<script src="/javascripts/application.js?1309424326" type="text/javascript"></script>
我已经看过关于这个主题的其他帖子,但没有任何效果,我没有错误,只是重定向到同一页面,没有被提示。我有其他一些使用jquery的代码,工作正常。 我遇到的问题是确认和方法在继续之前没有提示。将jquery实现到应用程序的好方法是什么,我试图包含jrails,但是我的其他代码都打破了感谢您的帮助
答案 0 :(得分:10)
之前我见过这个问题,我刚刚找到了一个使用纯JavaScript的解决方法。如果你赶时间,这可能就是现在。
你可以试试这个,你会得到同样的效果:
<%= button_to("Accept Post", {}, {:onclick => "return confirm('Are you sure?')", :method => :accept_question, :remote => true}) %>
答案 1 :(得分:4)
我刚遇到这个问题并意识到我的公共目录(rails 3.0.x)中没有jquery_ujs.js文件。
:confirm => "Message..."
功能需要jQuery的不显眼的脚本适配器,如果您决定废弃Prototype for jQuery。可以通过向您的Gemfile添加gem "jquery-rails"
来安装此适配器,运行bundle install
,然后rails generate jquery:install
(如果您想使用jquery_ui,请添加--ui
)来自终端。
然后将javascript_include_tag :defaults
添加到您的应用程序布局中,您就可以了。
generate命令会自动为您提取jquery和jquery_ujs文件(如果您要求,则为jquery_ui文件)。我的错误是我手动添加了jquery和jquery_ui文件,但是没有jquery_ujs文件。所以所有的jquery功能都在工作,但:confirm => "Message..."
却没有。一旦我安装它,一切都完美无瑕。