我有一個資源「Project」嵌套在資源「Group」中。在我的演出組頁面上,我列出了該組的所有項目。我還添加了一個「新項目」鏈接導致Rails:嵌套資源的自動填充參考
new_group_project_path(@group)
但在隨後的新項目的形式,用戶仍然需要輸入組的ID,即使他只是點擊了一個新的項目鏈接特定組的頁面。我試過
<%= f.text_field :group_id, :value => @group.id %>
但@group似乎是零,即使我把它傳遞給鏈接。
如何自動填充該字段與group_id,甚至隱藏用戶的整個事情,因爲它已經預先確定,他不應該考慮這一點?
感謝,
MRB
[編輯]
這裏有更多的我的代碼,以澄清:
1 class ProjectController < ApplicationController
2 def new
3 @group = Group.find(params[:group_id])
4 @project = @group.projects.build
5 respond_with(@project)
6 end
7
8 def create
9 @group = Group.find(params[:group_id])
10 @project = @group.projects.build(params[:projects])
11 end
12 end
而在_form.html.erb
26 <% if @group.nil? %>
25 <div class="field">
26 <%= f.label :group_id %><br />
27 <%= f.text_field :group_id %>
28 </div>
29 <% end %>
路線s.rb:
5 resources :groups do
4 resources :projects
5 end
6
7 resources :projects
希望這會有所幫助。謝謝。
就我個人而言,我會把'@ group'定義放在'before_filter'中,並在'ProjectsController'中的每個動作之前調用它' – 2011-04-27 08:43:18
這就是我所做的。我不明白的是,如何訪問我的_form.html.erb中的@group? @group總是在那裏。 – MrB 2011-04-27 08:50:55
我在創建操作中完成了構建,而不是before_filter。 (澄清) – MrB 2011-04-27 08:51:43