2013-07-19 2 views
1
coordinates GET /coordinates(.:format)   coordinates#index 
       POST /coordinates(.:format)   coordinates#create 
new_coordinate GET /coordinates/new(.:format)  coordinates#new 
edit_coordinate GET /coordinates/:id/edit(.:format) coordinates#edit 
    coordinate GET /coordinates/:id(.:format)  coordinates#show 
       PUT /coordinates/:id(.:format)  coordinates#update 
       DELETE /coordinates/:id(.:format)  coordinates#destroy 
    tweets_search GET /tweets/search(.:format)  tweets#search 
    tweets_index GET /tweets/index(.:format)   tweets#index 

class TweetsController<ApplicationController 

    def index 
#include 'coordinates_controller.rb' 
    include SearchHelper 
include ParamasHelper 
    @sql=a.search 
    @tweets=Tweets.paginate_by_sql(sql, :@page, :per_page => @per_page).all 
    end 
end 

В моем приложении Rails, у меня есть две таблицы с именами Coordinates и Tweets. У меня есть четыре действия, которые нужно выполнить.рубин на рельсах маршрутизации маршрутизации ошибок к неправильной странице

Мой routes.rb файл

Tweetsblog2::Application.routes.draw do 
resources :tweets, :coordinates 
get "tweets/show" 
get "tweets/index" 
match "/tweets/show" => "tweets#show" 
match "/tweets/index" => "tweets#index" 

Всякий раз, когда я перейти к http://localhost:3000/tweets, он показывает tweets/index вместо tweets/show и та же ошибка, я получаю с разными названиями.

Когда я перехожу на http://localhost:3000/tweets/show, он дает ArgumentError in TweetsController#show.

Когда я перейти к http://localhost:3000/tweets/index его подачи ArgumentError in TweetsController#show одно и то же

Мой код show.html.erb:

<%= form_tag({controller: "tweets", action:"index" }, method: "get") do %> 
    <%= label_tag(:search, "search for:") %> 
    <%= text_field_tag(:show) %> 
    <%= text_field_tag(:search) %> 
    <%= submit_tag("get results ") %> 
<% end %> 

Мой код index.html.erb:

<%= will_paginate @tweets %> 
<% @tweets.each do |tweets| %> 
<ul> 
    <li><%= tweets.id %></li> 
    <li><%= tweets.tweet_created_at %></li> 
    <li><%= tweets.tweet_id %></li> 
    <li><%= tweets.tweet_source %></li> 
    <li><%= tweets.tweet_text %></li> 
    <li><%= tweets.user_id %></li> 
    <li><%= tweets.user_name %></li> 
    <li><%= tweets.user_sc_name %></li> 
    <li><%= tweets.user_loc %></li> 
    <li><%= tweets.user_img %></li> 
    <li><%= tweets.longitude %></li> 
    <li><%= tweets.latitude %></li> 
    <li><%= tweets.place %></li> 
    <li><%= tweets.country %></li> 
<% end %> 
</ul> 

Это не маршрутизации на соответствующую страницу. Пожалуйста, помогите мне, я застрял в этом.

+0

можете ли вы опубликовать ваш 'TweetController' как вероятный капот этой ошибки может быть то, что вы не имеете этого действия установленный в вашем контроллере. – David

+0

Sidenote - вы должны переместить свой '

    ', поэтому он находится снаружи '<% @ tweets.each do | tweets | %> ', как'
'is. –

+0

запустите 'rake routes', чтобы показать, как маршрутизатор видит ваш файл конфигурации. , первые «ресурсы: твиты,: координаты» - это то, почему они соответствуют/твиты для действия #index, это то, что делают ресурсы. Кроме того, ваш матч/получение являются излишними. поскольку матч принимает любой тип (post/get), а get принимает только get. – Doon

ответ

0

-Обновление на comment-

Tweetsblog2::Application.routes.draw do 
    resources :coordinates 
    get "tweets/show" => "tweets#show" 
    get "tweets/index" => "tweets#index" 

Удаление ресурсов: твиты должны исправить эту проблему и позволит Вам использовать просто позвоните 2 варианта. Исходные ресурсы: твиты показывают рельсы, что вам нужны находчивые маршруты (индекс показывает весь ресурс, показывает его и т. Д.). Так что просто построение двух ненаучных маршрутов, как указано выше, похоже на то, что вы хотите. То, как я обычно делаю что-то вроде этого, это просто включать форму поиска в в индексной страницы, и если нет ни одного поиска Params затем показать все твиты.)

+0

@james thk u очень много. @ doon, я не хочу этого. его как кнопка поиска, когда я набираю что-то, он должен отображать все соответствующие твиты, твиты # show для кнопки поиска, а твиты # index - для отображения соответствующих запросов. может ли помочь PLS? – user2492854

+0

попробовал tat тоже его тоже не работает. можете ли вы выяснить PLS? – user2492854

+0

Такое же сообщение об ошибке? Что показывают ваши рейк-маршруты. – Doon

0

вы должны написать

resources :tweets, except: [:index,:show] 

потому что вы объявил вам ресурс первым, поэтому рельсы пытается соответствовать его маршрутизации по умолчанию вместо пользовательского действия:

get "tweets/index" 
+0

пытается, но это не работает, небольшое изменение, о котором я должен был упомянуть. Есть только одна модель, а координаты и твиты - две таблицы. вы можете помочь мне разобраться с этим? – user2492854

+0

Я понимаю, что вы пытаетесь сделать, но я думаю, что вы не следуете конвенции Rails, вот почему вы застряли. – sunny1304

+0

Может ли у вас PLS Temm Wat, я должен делать? – user2492854

Смежные вопросы