Rails 页面仅在刷新后应用

Posted

技术标签:

【中文标题】Rails 页面仅在刷新后应用【英文标题】:Rails pages apply only after refresh 【发布时间】:2014-11-28 13:09:18 【问题描述】:

所以,我几乎完成了一个使用 Ruby on Rails 的练习应用程序。它有点像问答,但方式更简单。我在导航栏上的站点名称上有一个 link_to 根路径。但问题是当我在另一个页面时,如果我点击主页名称,它不会显示任何内容,但只有在我按下刷新时才会显示数据。

从日志中看,它在执行查询时就停止了,没有进一步了。我已经部署了该应用程序以供参考@altur.herokuapp.com

请求期间的日志,

点击链接后,

    Started GET "/" for 127.0.0.1 at 2014-11-28 18:36:07 +0530
Processing by QuestionsController#index as html
  Question Load (4.0ms)  SELECT "questions".* FROM "questions" ORDER BY created_at DESC
   (3.0ms)  SELECT COUNT(*) FROM "answers" WHERE "answers"."question_id" = $1  [["question_id", 1]]
  Rendered questions/index.html.erb within layouts/application (14.0ms)
  User Load (1.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
Completed 200 OK in 78ms (Views: 69.0ms | ActiveRecord: 8.0ms)

在我按下刷新后,它会发出所有 GET 请求,否则页面显示为空白..

这同样适用于“我的问题”链接。只是 DB 查询,没有发出 GET 请求。

Processing by QuestionsController#userview as HTML
  Parameters: "user"=>"1"
  User Load (2.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
  User Load (2.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1  [["id", "1"]]
  Question Load (3.0ms)  SELECT "questions".* FROM "questions" WHERE "questions"."user_id" = $1  [["user_id", 1]]
   (2.0ms)  SELECT COUNT(*) FROM "answers" WHERE "answers"."question_id" = $1  [["question_id", 1]]
  Rendered questions/userview.html.erb within layouts/application (11.0ms)
Completed 200 OK in 51ms (Views: 38.0ms | ActiveRecord: 9.0ms)

【问题讨论】:

我遇到了同样的问题,我的问题通过将我的 javascript 代码放在 $(document).ready(function() //Your code comes here) 中得到解决。如果有帮助,请告诉我。 这完全按预期工作.. 显然砌体功能被包装在 '$(window).load' 函数中,当更改为 '$(document).ready' 时它起作用了.. 必须挖掘更深层次的原因.. 很高兴它有帮助.. 我很难解决这个问题:( 【参考方案1】:

您似乎对将类分配给元素的 js 库有问题。如果您在单击徽标链接后检查主页的 html,您会注意到:

.class masonry

没有分配给div

.blog-grid.

而childs也有同样的问题。你失去了所有的课程。我不确切知道您使用什么来创建此模板。但是在加载资产或执行 ajax 加载时检查错误,因为那里似乎有问题。

【讨论】:

以上是关于Rails 页面仅在刷新后应用的主要内容,如果未能解决你的问题,请参考以下文章

Ruby On Rails:jQuery datepicker 仅在刷新页面时有效

DataTables 仅在页面刷新时加载

Rails 页面在每次刷新时更改翻译

Coffeescript JQuery on click 仅在页面刷新时有效

CSS样式有时仅在jsf页面上的页面刷新后应用?

错误:发送后无法设置标题,仅在刷新页面后发生