2013-04-19 3 views
2

У меня есть следующая ситуация:Рельсы - передать параметр в форму

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

Но теперь я хотел бы создать кнопку в представлении клиента, которая ссылается на «New Project Form» и передает текущий клиент в качестве параметра. В связи с этим клиент должен быть предварительно установлен в форме для нового проекта.

Я пытался сделать это путем передачи параметров следующим образом:

<%= link_to "New Project", new_project_path(:project => { :client_id => @client.id }), :class => 'btn btn-primary' %> 

Но я не понимаю, как я мог теперь использовать Пары: client_id в новой форме проекта. Или может быть другой способ сделать это прямо в контроллере проекта.

Благодарен за любую помощь!

ответ

0

Возможно, вы используете nested resource, возможно, с установкой polymorphic association. Таким образом вам не нужно передавать client_id. Изучение этих двух тем должно помочь.

Вот что я использую с простой формой, чтобы скрыть раскрывающееся меню, если клиент установлен. Остальное - магия Rails, если вы правильно настроили свои отношения.

<% unless @client %> 
    <%= f.association :client, prompt: 'Select a client...', label_method: lambda { |client| "#{client.first_name} #{client.middle_name} #{client.last_name}" } %> 
<% end %> 
+0

спасибо! смотрел скринкаст о вложенном ресурсе и сразу реализовал его :) –

+0

Рад, что вы нашли то, что искали! – Tomanow

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