/ / ruby ​​on rails маршрутизация грешка маршрутизиране на грешна страница - ruby-on-rails, ruby-on-rails-3, маршрути

руби на релсите грешка при маршрутизиране маршрутизиране на грешната страница - рубинка по релси, рубин на релси-3, маршрути

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 за отговор № 1

трябва да напишеш

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

защото първо заявихте ресурс, така че релсите се опитват да съвпаднат с маршрутизацията си по подразбиране вместо с персонализираното си действие:

get "tweets/index"

0 за отговор № 2

- актуализиране на коментар-

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

Премахване на ресурсите:Туитовете трябва да поправят проблема ви и да ви позволят да използвате само 2 опции. Първоначалните ресурси: Tweets казва на релсите, че искате изобретателни маршрути (индексът показва целия ресурс, показват конкретна и т.н.). Така че само изграждането на двата маршрута, които не са полезни, звучи като това, което искате. Начинът, по който обикновено правя нещо подобно, е просто да включа формуляра за търсене в индексната страница и ако няма търсене, ще покаже всички туитове.)