Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 机架pjax不工作,无错误_Ruby On Rails_Pjax - Fatal编程技术网

Ruby on rails 机架pjax不工作,无错误

Ruby on rails 机架pjax不工作,无错误,ruby-on-rails,pjax,Ruby On Rails,Pjax,我试图根据开始使用我的rails应用程序,但我没有发现任何变化,也没有发现任何错误。以下是相关文件: 档案: source 'https://rubygems.org' gem 'rails', '3.2.13' gem 'bootstrap-sass', '2.1' gem 'simple_form' gem 'rspec' gem 'pg' gem 'koala', '~> 1.7.0rc1' gem 'rack-pjax' gem 'jquery-rails' gem 'fancy

我试图根据开始使用我的rails应用程序,但我没有发现任何变化,也没有发现任何错误。以下是相关文件:

档案:

source 'https://rubygems.org'

gem 'rails', '3.2.13'
gem 'bootstrap-sass', '2.1'
gem 'simple_form'
gem 'rspec'
gem 'pg'
gem 'koala', '~> 1.7.0rc1'
gem 'rack-pjax'
gem 'jquery-rails'
gem 'fancybox-rails'

group :development, :test do 
  gem 'sqlite3'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end
config/application.rb:

require File.expand_path('../boot', __FILE__)

require 'rails/all'

if defined?(Bundler)
  Bundler.require(*Rails.groups(:assets => %w(development test)))

end

module Prestongunderson
  class Application < Rails::Application
    config.middleware.use Rack::Pjax

    config.encoding = "utf-8"

    config.filter_parameters += [:password]

    config.active_support.escape_html_entities_in_json = true

    config.active_record.whitelist_attributes = true

    config.assets.enabled = true

    config.assets.version = '1.0'
  end
end
app/assets/javascripts/static_pages.js.coffee:

$(document).ready ->
    jQuery ->
        $("a.fancybox").fancybox()
    jQuery ->
      $('.local-nav a').pjax('[data-pjax-container]')
app/views/layouts/application.html.erb:

<!DOCTYPE html>
<html>
    <%= render 'layouts/header' %>
    <%= render 'layouts/subscribe' %>
    <%= render 'layouts/soundcloud' %>
    <%= render 'layouts/tweet-stream' %>
    <body>

        <div data-pjax-container>
            <%= yield %>
        </div>

        <%= render 'layouts/footer' %>
        <%= render 'layouts/google_analytics' %>
    </body>
</html>

app/views/layouts/_header.html.erb

<header>
  ...
    <ul>
        <% ["Home", "Bio", "Gallery", "Music", "Tour", "Videos", "Contact"].each do |page| %>
            <li><%= link_to( page.upcase, @title == page ? "#" : "/#{page.downcase}", class: "local-nav") %></li>
        <% end %>
    ...
  </ul>
  ...
</header>

...
  • ...
...
我是否可能在某个地方有冲突的代码?我还缺少其他依赖项吗

编辑
这应该使用Ajax在链接请求上使用
datapjax容器
仅加载
div
中的数据。相反,它加载整个页面。我通过在侧栏中的媒体播放器中播放一首歌曲来测试这一点,在yeild之外的layout
\u soundcloud.html.erb中呈现。单击使用pjax设置的链接时,它应该只更新单个的
div
,但它会加载一个全新的页面,并停止音乐。

虽然我使用了
pjax rails
,但原因应该是相同的

一个很可能的原因是您的开发服务器需要较长的时间来响应。默认情况下,Pjax不能等待这么长时间,所以它会返回到正常的HTTP请求

解决方案是在JS上添加超时选项

$('.local-nav a').pjax('[data-pjax-container]', {timeout: 2000})

虽然我在使用pjax rails方面有类似的经验,但在JS方面的原因应该是一样的

一个很可能的原因是您的开发服务器需要较长的时间来响应。默认情况下,Pjax不能等待这么长时间,所以它会返回到正常的HTTP请求

解决方案是在JS上添加超时选项

$('.local-nav a').pjax('[data-pjax-container]', {timeout: 2000})

当请求周期中涉及重定向时,pjax会中断。也检查一下

pjax在请求周期中涉及重定向时中断。也检查一下

您使用的
jquery pjax
API现在似乎已经过时了。根据文件,这条线

$('a.local-nav').pjax('[data-pjax-container]')
应该是

$(document).pjax('a.local-nav', '[data-pjax-container]')

顺便说一句,如果将
local nav
类设置为链接,则应使用
a.local-nav
选择器,而不是
.local nav a

您使用的
jquery pjax
API现在似乎过时了。根据文件,这条线

$('a.local-nav').pjax('[data-pjax-container]')
应该是

$(document).pjax('a.local-nav', '[data-pjax-container]')

顺便说一句,如果您将
local-nav
类设置为链接,您应该使用
a.local-nav
选择器而不是
.local-nav a

请分享您的期望和正在发生的事情。您的Gemfile缺少
pjax_rails
?@vinodadhikary,
rake pjax
也是一种选择。@BillyChan你的意思是
rack pjax
?@JShoe我想是的,我在谷歌上搜索
rake pjax
,直到看到你的评论lol。请分享你的期望和发生的事情。你的Gemfile缺少
pjax\u rails
?@vinodhikary,
rake pjax
也是一种选择。@BillyChan你的意思是
rack pjax
?@JShoe我想是的,我在谷歌上搜索
rake pjax
,直到我看到你的评论lol。不幸的是,这不起作用。我甚至把时间增加到6000。它相当快地启动了新页面的呈现,它甚至没有尝试使用
pjax
。不幸的是,这没有起作用。我甚至把时间增加到6000。它相当快地启动了新页面的呈现,甚至没有尝试使用
pjax