Полная страница как / плюс Частичные - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу иметь страницу, которая является полноценной страницей, то есть я могу назвать ее с помощью URL, например, такого:

/path/to/client/33

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

/path/to/customer/678
...find client id.....
render :client, :id => 33 #inside the customer page
render :customer

Я понимаю, что могу сделать это как частичное, но я не могу понять, как передавать параметры между ними. Я тоже думал о компоновке, но как мне организовать запуск контроллера клиента? Так что я могу найти идентификатор клиента и затем визуализировать клиента. Думайте о клиенте как об одном лице, "имеющем" много клиентов.

1 Ответ

0 голосов
/ 11 ноября 2011
# app/views/your_controller/_client.html.erb
The Client is <%= client.name %>

# app/views/your_controller/customer.html.erb
The Customer is <%= @customer.name %>
<%= render :partial => 'client', :locals => { :client => @client } %>

# app/views/your_controller/client.html.erb
<%= render :partial => 'client', :locals => { :client => @client } %>

# your_controller.rb
def customer
  @customer = Customer.find(params[:id])
  @client = @customer.client
end

def client
  @client = Client.find(params[:id])
  # i forget if you need to assign it client to make the partial work
  client = @client
end
...