Rails传递父ID

时间:2014-09-02 03:29:15

标签: ruby-on-rails parameter-passing one-to-many

我有一个UserStory模型和一个Task模型,我希望让用户动态地将任务添加到用户故事我所说的是将用户故事ID传递给任务创建操作可以让任何人帮助我吗?

user_stories / show

<%= 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" %>');

和tasks / _form

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

1 个答案:

答案 0 :(得分:3)

将您的任务资源嵌套在config / routes.rb中的user_stories资源下:

resources :user_stories do
  resources: tasks
end

您的链接将变为:

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

在TasksController中,您现在可以访问:user_story_id中的params

Rails Cast涵盖了此内容。它有点过时(在config / routes.rb中不再需要map),但基本概念仍然相同。