2016-04-05 4 views
-2

Мне нужно сделать страницу для своего блога, а также для каждого сообщения в блоге. Это должно выглядеть так: example.com/blog/my_first_post. Сообщения - это статические файлы HTML, и я не использую какую-либо базу данных.Rails вложенные маршруты для простого блога

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

get 'blog' => 'static_pages#blog' do 
    get '/my_first_post' => 'blog#my_first_post' 
    end 

Вот мой StaticPages контроллер:

... 

    def blog 
    def my_first_post 
    end 
    end 

    ... 

Блог страница работает нормально, но пост не работает.

+0

Что именно вы хотите ? У вас есть таблица 'posts'? – 7urkm3n

+0

Пожалуйста, объясните больше вашего вопроса, о чем вы говорите? Это сообщение или ваш личный модуль? – HashRocket

+0

просто статический html под страницей/блога. нет базы данных! @ 7urkm3n – DanielsV

ответ

0

Чтобы получить этот example.com/blog/my_first_post ваши маршруты должны выглядеть как следующие -

get 'blog' => 'static_pages#blog' 
get 'blog/my_first_post' => 'static_pages#my_first_post' 

Ваш контроллер должен выглядеть как this-

class StaticPagesController < ApplicationController 
    def my_first_post 
    end 

    def blog 
    end 
end 
+0

Не работает @dkp – DanielsV

+0

@ DanielsV проверяет обновленный ответ. маршруты попадут в действие 'BlogsController'' my_first_post'. Поместите свою логику в метод 'my_first_post'. – dp7

+0

нет такой вещи как контроллер блога. Все находится под «static_pages controller» @dkp – DanielsV

0

Проверьте это: но одно

Если его просто статическая страница лучше использовать, как показано ниже.

get 'blog/my_first_post' => 'static_pages#my_first_post' 

Вы не можете вызвать этот метод, как вид, если его в нем. сделайте это так.

def blog 
    end 

    def my_first_post 
    end 
+0

не работает @ 7urkm3n – DanielsV

+0

@ DanielsV обновил его. – 7urkm3n

0

Используйте ниже, выше ресурсы: блог, если присутствует

get 'blog/my_first_post' 
0

У попробовать:

get 'blog/my_first_post', to: Proc.new { |env| 
    [ 
     200, 
     {"Content-Type" => "text/html"}, 
     [File.read("public/my_first_post.html")] // where you static files are 
    ] 
    } 

В вашем случае контроллер является излишним