如何在rails上的ruby中重定向到另一个控制器操作

时间:2016-11-22 04:51:26

标签: ruby-on-rails

我有两个控制器searchtweet

我在搜索,我想去推文控制器索引操作列出数据库中的所有推文。我用redirect_to尝试了很多东西,但它没有用。我通常会收到此错误NoMethodError in Home#search

search.html.erb:

<%=client.search("#{params[:search]}", result_type: "recent").take(5).collect do |tweet| %>
    <% @tweeter = Tweeter.new(image: tweet.user.profile_image_url ,sender: tweet.user.name ,tweet: tweet.full_text ,date: tweet.created_at)%>
    <% @tweeter.save %>
    <%= redirect_to  tweeters_path %>       
<%end %>  

推特控制器:

def index
    @tweeters = Tweeter.all
end

我收到了这条消息:

enter image description here

注意:当我在twitter中搜索任何内容时,结果将保存在DB中,当我键入URL https://xxxxxxxxxxxxxxx.c9users.io/tweeters时,将列出DB中的所有数据。但我想在搜索后直接转到https://xxxxxxxxxxxxxxx.c9users.io/tweeters

2 个答案:

答案 0 :(得分:1)

redirect_to是ActionController :: Base Class的一个方法,所以你不能在ActionView中使用它。

相反,你可以尝试这样:

<% if @tweeter.save  %>
  <script type="text/javascript">
    window.location.href="/your_path"
  </script>
<% end %>

答案 1 :(得分:0)

您正在查看您应该在控制器中执行的操作。您应该阅读MVC(请参阅此处MVC on Wiki

解决您的问题:您可以在那里渲染部分。 用

替换你的重定向...
render(:partial => 'name_of_partial')