是否有使用jQuery而没有jRails的Rails/Prototype observe_field方法?
我正在使用will_paginate进行搜索:
<%= observe_field('search', :frequency => 2, :update => 'results', :loading => "Element.show('spinner')", :complete => "Element.hide('spinner')", :url => { :controller => 'foo', :action => 'search' }, :with => "'search=' + escape(value)") %>
我最近开始了一个项目,团队决定我们想要使用jQuery而不是Prototype/Scriptaculous来满足我们的javascript需求.我们设置了项目,并开始切换.插件是通过这些说明安装的,所有都按计划进行.不久之后,当试图运行"./script/server"时,我们收到以下错误:
=> Rails 2.3.2 application starting on http://0.0.0.0:3000
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:105:in `rescue in const_missing': uninitialized constant ActionView::Helpers::JavaScriptElementProxy::ActionView (NameError)
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:94:in `const_missing'
from /home/company/Development/project/vendor/plugins/jrails/lib/jrails.rb:229:in `<class:JavaScriptElementProxy>'
from /home/company/Development/project/vendor/plugins/jrails/lib/jrails.rb:226:in `<module:Helpers>'
from /home/company/Development/project/vendor/plugins/jrails/lib/jrails.rb:2:in `<module:ActionView>'
from /home/company/Development/project/vendor/plugins/jrails/lib/jrails.rb:1:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `block in require'
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
from /home/company/Development/project/vendor/plugins/jrails/init.rb:6:in `block in evaluate_init_rb'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin.rb:146:in `eval'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin.rb:146:in `block in evaluate_init_rb'
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.2/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin.rb:142:in `evaluate_init_rb'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin.rb:48:in `load'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin/loader.rb:38:in `block in load_plugins'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin/loader.rb:37:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.2/lib/rails/plugin/loader.rb:37:in …
Run Code Online (Sandbox Code Playgroud) 我有一个新的应用程序开始使用Rails 2.3.8来解决稳定性问题和gem兼容性,但是我们想通过在这个应用程序中实现Rails 3样式的UJS来开始意识到Unobtrusive JavaScript.是否有任何现有的插件/ gem支持此功能?
目前,我们正在使用的jrails宝石交换jQuery的原型,因为它是更适合我们的需要.有没有一种简单的方法可以在Rails 2.3.x应用程序中将jQuery与Rails 3风格的UJS集成?
javascript ruby-on-rails unobtrusive-javascript jrails ruby-on-rails-3
从ajax和jquery结合rails开始,我试图在我的用户索引页面底部创建一个"加载更多"链接.我的用户索引页面应显示10个第一个用户,然后单击它加载用户div底部的下10个用户的链接等.我使用Kaminari进行分页.
我从以下代码开始:
def index
@users = User.page(params[:page]).per(10)
end
Run Code Online (Sandbox Code Playgroud)
<div id="users">
<%= render :partial => @users %>
</div>
<%= link_to "Load more", "#", :class => "next" %>
Run Code Online (Sandbox Code Playgroud)
<div id="box">
<%= link_to full_name(user), user %>
</div>
Run Code Online (Sandbox Code Playgroud)
我发现这个片段(信用:这里)试图满足我的需要:
function loadMore(pageNo) {
var url = '/users?page=';
$.get(url + pageNo, function(response) {
$("#users").append(response);
});
}
$(document).ready(function() {
var currPage = 1;
$("a.next").click(function() {
loadMore(++currPage);
});
});
Run Code Online (Sandbox Code Playgroud)
我工作得很完美,除了它加载所有页面布局与下一个结果不仅我的_user部分中的框div我 如何管理这个?我是否必须创建一个index.js.erb(类似于:page.insert_html:bottom,:users,:partial => @users但是在jquery中,如果是这样,我该怎么办)?
谢谢你的帮助
这感觉应该很简单,但似乎并没有多少装载.
我有这个app/views/layouts/application.html.haml
:
= javascript_include_tag 'http://www.google.com/jsapi'
%script{ :type => "text/javascript", :charset => "utf-8" }
//<![CDATA[
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");
//]]>
= javascript_include_tag 'application'
Run Code Online (Sandbox Code Playgroud)
...我的application.js
文件包含一些好的'ole jQuery.我已经安装了JRails,我的jQuery可以正常使用库的本地副本,但我想使用Goolge API中的那些.
这是我的浏览器生成的内容:
<script src="http://www.google.com/jsapi.js" type="text/javascript"></script>
<script charset='utf-8' type='text/javascript'>
<!-- /<![CDATA[ -->
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");
<!-- /]]> -->
</script>
<script src="/javascripts/application.js?1255040651" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我正在使用Safari和错误控制台,它会报告以下错误:
ReferenceError: Can't find variable: google
ReferenceError: Can't find variable: $
Run Code Online (Sandbox Code Playgroud)
相应地,我的jQuery脚本都没有工作.
救命?
我是rails的新手(使用rails 2.3.10)并且想在特别是jquery ui中使用jquery.该项目是一个全新的项目,我打算使用jquery ui的一些小部件,如datapicker和selectable等.我听说可以安装jrails来替换rails2中的原型,我有以下问题.
谢谢batterhead
我有OS X 10.6(Snow Leopard),它已经加载了Rails 2.Rails
现在是版本3,我即将开发Rails 和 JRails(JRuby on Rails).
我不想弄乱东西,我该怎么办?如何升级到Rails 3?我应该使用RVM(Ruby版本管理器)吗?我应该通过Homebrew安装JRuby吗?
jrails ×7
jquery ×5
ruby ×2
haml ×1
javascript ×1
jquery-ui ×1
jruby ×1
kaminari ×1
macos ×1
prototypejs ×1