2013-07-01 4 views
0

Это один из двух партеров ... и мне очень хотелось бы беспокоить вас, ребята, чем-то таким тривиальным. Но я был на нем ВСЕ ДЕНЬ, и это сводит меня с ума. Ответ, вероятно, просто так, просто я не думал об этом (я родом из фона Symfony ...)Ruby on Rails - Route to home # index

Изначально у меня был только один контроллер:

$ rails generate controller home index 

... и я сделал, что мой корень.

Недавно, однако, я хотел получить базу данных. Поэтому я сделал эшафот под названием Daily и переключил корень на индекс dailies # index вместо индекса home #.

Это сработало отлично. Кажется, все работает нормально.

... только проблема в том, что я хочу использовать индекс дома для чего-то еще ... но теперь у меня нет способа связаться с ним.

Это мой routes.rb файл:

LiquidAdmin::Application.routes.draw do 
resources :dailies 


devise_for :users 

get '/auth/:provider/callback', to: 'sessions#create' 

get "home/bandwall" 
get "home/index" :to => "home#index" 
# get "dailies/index" 
root :to => "dailies#index" 

и это мои маршруты:

home_index GET /home/index(.:format)     home#index 

я пробовал.

<% link_to "Home", home_path %> 
<% link_to "Home", home_index %> 
<% link_to "Home", home/index %> 

Ничего не вернет меня в этот файл ... хотя он отлично работал, когда это был корень.

Теперь все это можно было бы избежать, если бы работал «План А» ...

План А просто сделать это ежедневный леску и сделать что-то вроде:

<% @dailies.each do |daily| %> 

Это работал как ссылку из индекса Daily ... но не как ссылку из индекса home #. Вот почему я переключил корень. Меня раздражало, и было легче.

Итак, мои вопросы: 1. Как я могу ссылаться на старый индекс дома #? 2. Как я должен был запрашивать таблицы ежедневных газет из индекса # дома?

ответ

2

Предполагая, что у вас есть модель Daily.

routes.rb

resources :dailies 
get "home/index" 

rake routes Запуск:

dailies GET /dailies(.:format)   dailies#index 
      POST /dailies(.:format)   dailies#create 
new_daily GET /dailies/new(.:format)  dailies#new 
edit_daily GET /dailies/:id/edit(.:format) dailies#edit 
    daily GET /dailies/:id(.:format)  dailies#show 
      PUT /dailies/:id(.:format)  dailies#update 
      DELETE /dailies/:id(.:format)  dailies#destroy 
home_index GET /home/index(.:format)  home#index 

app/controllers/dailies_controller.rb

class DailiesController 
    def index 
    @dailies = Daily.all 
    end 
end 

app/views/dailies/index.html.erb

<%= link_to "Home", home_index_path %> 

<% @dailies.each do |daily| %> 
    <%= link_to 'A daily', daily_path(daily) %> 
<% end %> 
+0

О, человек ... Вероятно, у меня уже было это решение миллион раз. Но проблема РЕАЛЬНАЯ ... Я должен был изменить ссылку на BOTH страницах ...в противном случае это приведёт к той же ошибке, когда я приеду на следующую страницу. Вот почему я думал, что ничего не получаю. Но, по крайней мере, ты заставил меня думать об этом! Спасибо! (Я также решил тайну не загружаемого javascript ...) Единственным оставшимся моим противником является Omniauth! –

+0

приветствую вас, получайте удовольствие :) –

+0

Для повседневной работы я получаю «неопределенный метод» каждый ». Есть идеи об этом? –