2015-10-27 19 views
1

我正在玩twitter的宝石,并遇到以下问题Rails |让我们使用视图输入数据而不用存储数据

这是我非常简单的看法,它的唯一目的是从头返回前20个推文给予Twitter处理。

home.html.erb

<%@client.user_timeline("BU_Tweets").each do |tweet|%> 
    <p><%= tweet.text%></p> 
<% end %> 

有我在同一个页面本身,这将要求沿线的用户的东西“请输入一个Twitter上建立某种形式的一种方式处理:”保存字的变量,并使用该变量是这样的:

<%@client.user_timeline(#{twitter_handle}).each do |tweet|%> 
    <p><%= tweet.text%></p> 
<% end %> 

我没有看到一个原因,我需要建立一个完整的模型只是为了存储这些话。

我搜索了一下,看起来大多数人都推荐使用javascript。我不知道任何JavaScript,所以我想知道是否有Ruby/Rails方法来解决这个问题?

+1

从我收集的东西,你基本上试图模仿异步行为,而不实际使用JavaScript(这是一个读标志位)。这样做的“轨道方式”将做你想避免的两种方法:JavaScript(最优化)或使用数据库。你可能可以结合'attr_accessor'来创建一个虚拟字段,一个可以接受该字段结果作为参数的自定义路由,然后找出如何将'attr_accessor'字符串吐到你的'update方法中.'然而,这绝对不是“铁轨方式”,也不是可取的。 – neanderslob

回答

0

如果您不想使用JavaScript,则需要在用户提交表单后刷新整个页面。有一种形式是这样的:

<%= form_tag <some_url> do %> 
    <%= text_field_tag 'handle' %> 
    <%= hidden_field_tag 'client', @client %> 
<%= submit_tag 'Submit' %> 

路线some_urlsome_controller#some_action

def some_action 
    @client = #however you're getting @client 
    @timelime = @client.user_timeline(params[:handle]) 
    #render the original page 
end 

然后在该网页上做:

<% @timeline.each do |tweet|%> 
    <p><%= tweet.text%></p> 
<% end %> 
相关问题