导轨|让我们在视图上使用输入数据而不存储数据

时间:2015-10-27 22:13:05

标签: ruby-on-rails

我正在使用twitter gem并遇到以下问题

这是我非常简单的观点,它的唯一目的是从给定的Twitter句柄返回前20条推文。

home.html.erb

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

我是否有办法在同一页面上创建某种形式,这将向用户询问“请输入推文句柄:”,将该单词保存在变量中,并使用变量在这样的事情:

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

我没有看到为什么我需要创建一个完整的模型来存储这些单词的原因。

我用Google搜索,似乎大多数人都推荐使用javascript。我不知道任何javascript,所以我想知道是否有这个问题的Ruby / Rails方法?

1 个答案:

答案 0 :(得分:0)

如果您不想使用javascript,则在用户提交表单后,您需要刷新整页。有一个这样的表格:

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

some_url路由到some_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 %>