Это на самом деле проще, чем я ожидал.
Сначала настройте свой маршрут:
# config/routes.rb
MyApp::Application.routes.draw do
match '/product_info' => 'products#show'
end
Поскольку Rails обычно не обслуживает файлы PHP, вы будетенеобходимо создать обработчик MIME-типа для .php
:
# config/initializers/mime_types.rb
Mime::Type.register_alias 'text/html', :php
Настройте действие products#show
, чтобы найти продукт на основе параметра URL.Поскольку вы добавили псевдоним php
MIME к text/html
, вам не нужно делать ничего особенного, чтобы отобразить представление "PHP":
# app/controllers/products_controller.rb
class ProductsController < ApplicationController
def show
@product = Product.find(params[:products_id])
end
end
Вам придется вручную создать product_path
вспомогательный метод, поскольку вы не используете RESTful маршруты:
# app/helpers/products_helper.rb
module ProductsHelper
def product_path(product)
"/product_info.php?products_id=#{product.id}"
end
end
Теперь просто создайте свое представление:
# app/views/products/show.php.erb
<%= link_to @product.name, @product %>