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 仅在刷新页面时有效