2016-11-22 3 views
-2

У меня есть два контроллера search и tweet:Как перенаправить к другому действию контроллера в рубине на рельсах

Я нахожусь в поиске, и я хочу, чтобы перейти к твиты контроллер индекса действия, чтобы перечислить все твиты в БД. Я пробовал много вещей с 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 результат будет сохранен в БД и когда я набираю URL https://xxxxxxxxxxxxxxx.c9users.io/tweeters a ll данные в БД. Но я хочу, чтобы после поиска перейти прямо к https://xxxxxxxxxxxxxxx.c9users.io/tweeters

+0

Пожалуйста, поставьте ваш исходный код и войти –

+0

вы можете написать новое действие контроллера в контроллере поиска, которое даст вам список всех твитов из БД. Вы пробовали это? –

+0

он сохранен в БД, и я могу перечислить. Однако я хочу перечислить их напрямую. Теперь мне нужно вручную отредактировать URL, чтобы показать все перечисленные в БД – Mohammed

ответ

0

redirect_to является метод ActionController: : Базовый класс, так что вы не можете использовать его в ActionView

Вместо этого, вы можете попробовать, как это:..

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

Вы делаете вещи на свой взгляд, что нужно делать в контроллере. Вы, вероятно, следует читать на MVC (см здесь, например MVC on Wiki

Для вашей проблемы:. Вы могли бы оказать частичное там заменить переадресацией ... с

render(:partial => 'name_of_partial') 
Смежные вопросы