Загрузите файл представления не обычным способом, используя Ruby on Rails - PullRequest
0 голосов
/ 17 марта 2011

Я использую Ruby on Rails 3, и я хотел бы знать, возможно ли использовать URL-адрес в пространстве имен для фильтрации данных.

Например, у меня есть пространство имен, указанное следующим образом:

namespace "users" do
  resources :accounts
end

Используя приведенный выше код, я могу получить доступ к данным учетной записи с идентификатором 1 по URL-адресу (это загрузит файл RAILS_ROOT/app/views/users/accounts/show.html.erb)

http://localhost/users/accounts/2

. Я хотел бы просмотретьследующий URL

http://realer.com/users/2

для загрузки представления с именем supervision.html.erb, расположенного в главной папке users:

`RAILS_ROOT/app/views/users/supervision.html.erb` # This is the file that I would like to load

`RAILS_ROOT/app/views/users/accounts/new.html.erb`
`RAILS_ROOT/app/views/users/accounts/show.html.erb`
...

Я подумал подойти так, потому что хотел быиметь отдельные представления для каждого действия, а затем объединить все их как частичные представления в одном файле, в моем случае supervision.html.erb.Для этого мне не нужно менять, например, файл show.html.erb по отдельности, чтобы я мог сохранить этот файл просмотра «нетронутым» \ «чистым» с возможностью загрузки его в другие представления.То есть show.html.erb должен использоваться для выполнения только одной задачи, поэтому в него не должны загружаться другие частичные элементы.

1 Ответ

0 голосов
/ 17 марта 2011

Если вы хотите визуализировать по-другому сам файл представления, а структура URL не имеет для вас большого значения, вы можете сделать это в контроллере:

def show
  render 'users/supervision'
end

Если вы действительно тоже хочу изменить структуру URL-адреса ... Я не уверен, есть ли быстрый способ сделать это, но вы всегда можете сделать это:

match 'users/:id' => 'accounts#show'

или

match 'users/:id' => 'users/accounts#show'
...