2014-09-02 2 views
0

У меня есть модель UserStory и модель задачи, и я хочу, чтобы пользователи динамически добавляли задачу в историю пользователей, о чем я говорю, передает идентификатор истории пользователя в задачи, которые создают действие, может кто-нибудь мне помочь ?Rails, передающий родительский идентификатор

user_stories/показать

<%= link_to "Add new task",{:controller => ':tasks', :action => :new},:user_story_id: = >@user_story.id, remote: true %> 

задачи/new.js.erb

$('#new_task_link').hide().after('<%= j render :partial => "form" %>'); 

и задачи/_form

<%= f.hidden_field :user_story_id, :value => params[:user_story_id] %> 

ответ

3

Nest свои задачи ресурсы под вашими user_stories ресурсов в конфигурации /routes.rb:

resources :user_stories do 
    resources: tasks 
end 

Ваша ссылка становится:

<%= link_to "Add new task", user_story_tasks_path(@user_story.id) %> 

В TasksController, вы теперь имеют доступ к :user_story_id в params.

A Rails Cast охватывает это. Он немного устарел (map больше не нужен в config/routes.rb), но фундаментальная концепция остается прежней.

+0

Спасибо за ваш повтор, я изменил свои маршруты и сделал ссылку добавления задачи таким образом: <% = link_to "Добавить новую задачу", new_user_story_task_path (@ user_story.id)%>, и она меня деистрирует на задачи/новое, что я действительно хочу, чтобы эта форма отображалась на той же странице, что и user_stories/show, но когда я добавляю remote: true для этой ссылки, она не работает –

+0

Это становится немного более привлекательным. Вот связанный Rails Cast, который обрабатывает [вложенные формы] (http://railscasts.com/episodes/196-nested-model-form-revised) - для пересмотренного эпизода требуется учетная запись в размере 9 долларов США, но я уверен, что бесплатный оригинальный эпизод будет дать суть. –

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