Как Rails делает супер-минимальные сайты?(1 форма -> страница результатов) - PullRequest
0 голосов
/ 23 февраля 2011

Я делаю сайт с простой формой на главной странице. Когда пользователь отправляет форму, приложение сканирует веб-сайт, а затем представляет результаты на новой странице.

  • Domain.com имеет форму поиска (: method => "get")
  • Domain.com / search / xxxxxx содержит результаты поиска.

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

Как Rails может организовать такое приложение?

Ответы [ 3 ]

4 голосов
/ 23 февраля 2011

Попробуйте использовать sinatra

Ваш сайт должен выглядеть следующим образом.Рельсы слишком тяжелые для ваших требований.

get '/' do
   erb :form, layout => :layout
end

get '/search/:key_word' do
 # use params[:key_word] to do what u want
end
1 голос
/ 23 февраля 2011

Вам не нужно использовать модель для каждого контроллера. В этом случае я бы использовал один SearchController

rails g controller Search index

добавить это к маршрутам:

match '/search/:keyword' => 'search#index'
root :to => 'search#index'

и в вашем контроллере вы можете написать

class SearchController

  def index
    if params[:keyword]
      # search for the keyword ...

    else
      # render the search-form
    end
  end
end

Так что это довольно легко сделать в рельсах. Использование рельсов в таком случае полезно, если у вас есть другие части сайта, которые нуждаются в большей функциональности. Также работать с представлениями может быть проще. Иначе теперь в рельсах 3 можно загружать только те части, которые вам действительно нужны. Так что в этом случае вы бы хотели не загружать ActiveRecord.

Альтернативный подход - использовать что-то более простое, например, синатру.

0 голосов
/ 23 февраля 2011

Просто используйте один контроллер, Поиск и поиск модели.Затем вы можете сохранить каждый запрос в БД и позволить пользователям получать их или создавать постоянные URL для поиска.Вы можете использовать Nokogiri для сканирования в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...