如何在没有Javascript / AJAX的情况下更新视图,以便在Rails 3.2中调用我的模型中的方法?
推文型号:
class Tweet < ActiveRecord::Base
def self.get_tweets
#get more tweets code and store in DB
end
end
推文控制器:
class TweetsController < ApplicationController
def index
@all_tweets = Tweet.all
end
end
如何通过索引视图中的按钮或链接调用get_tweets函数?我不希望每次都刷新页面,只有当我点击刷新链接/按钮时才会刷新。
由于
答案 0 :(得分:2)
如果您不能/不想使用JavaScript刷新页面的一部分,则必须重新加载整个页面。您可以通过元标记每隔几秒钟执行此操作:
<!-- refresh every 30 seconds -->
<meta http-equiv="refresh" content="30">
或创建指向该页面的链接:
<a href="...">Refresh Tweets</a>
或创建表单:
<form action="..." method="post">
<input type="submit" value="Refresh Tweets">
</form>
如果这些都不合适,您可以在页面中嵌入<iframe>
元素,然后根据需要刷新该文档。
答案 1 :(得分:2)
添加路线到您的routes.rb
get "Tweets/update_tweet"
然后向TweetsController
def update_tweet
Tweet.get_tweets
redirect_to :action => "index"
end
并在您的视图中添加指向新路线的链接
<%= link_to "Update Tweets", "/Tweets/update_tweet"%>
当您点击链接时,它将触发update_tweet操作,该操作将更新您的数据库并重定向到您的索引操作,该操作将显示更新的推文。
答案 2 :(得分:1)
如果您不想使用Javascript加载数据,但您的用户已在其浏览器中启用了Javascript,只需创建一个链接或按钮,如下所示:
<a href="javascript:window.location.reload()">Reload Page</a>
<input type="button" value="Reload Page" onClick="window.location.reload()">