2016-02-25 6 views
1

Я использую пули в моем проекте, чтобы дать моим параметрам другое имя, но у меня есть два параметра: «how-does-it-work». (.../investor/how-do-it-work) (.../customer/how-does-it-work) Я хотел бы использовать пули так, как они в настоящее время установлены. Есть ли способ сделать это?Рельсы, как использовать 2 из этих же слизней

ответ

0

Создайте два разных маршрута/контроллеров и просто запросите соответствующую модель ActiveRecord в действии show. Предполагая, что есть slug поле на вашей модели:

Rails.application.routes.draw do 
    resources :customers 
    resources :investors 
end 

class CustomersController < ApplicationController 
    def show 
    @customer = Customer.find_by(slug: params[:id]) 
    end 
end 

class InvestorsController < ApplicationController 
    def show 
    @investor= Investor.find_by(slug: params[:id]) 
    end 
end 

Это, вероятно, самый обычный способ решить эту проблему в Rails. Если вы используете драгоценный камень friendly_id, применяется тот же подход более или менее, за исключением, может быть, самого запроса.

Надеюсь, это поможет.

0

Итак, есть/инвестор/и/клиент/обе части слизняка?

Если это так, вы можете разделить строку и выполнить поиск на основе «how-do-it-work» в группировке «инвестора» или «клиента».

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

Если вы используете friendlyId, он обычно имеет встроенное сопоставление кандидатов. Кроме того, если вы имеете в виду сопоставление нескольких страниц с тем же самым слипом (что я делал в прошлом), вы можете отобразить страницу результатов, если хотите, путем рендеринга, основанного на количестве результатов.

 Смежные вопросы

  • Нет связанных вопросов^_^