2012-10-02 57 views
0

好吧,我找到解釋我的問題的單詞很麻煩。我希望你能理解並幫助我,因爲坦率地說,我瘋了。枚舉嵌套的表單域

比方說,我有四種型號:User,Team,ReportUserReport。我有這樣的:

class Report < ActiveRecord::Base 
    belongs_to :team 
    has_many :user_reports 
    accepts_nested_attributes_for :user_reports 
end 
class UserReport < ActiveRecort::Base 
    belongs_to :report 
end 

class ReportsController < ApplicationController 
    def new 
    @team = Team.find params[:team_id] 
    @report = Report.new 
    @team.users.each do |user| 
     ur = @report.user_reports.build 
     ur.user_id = user.id 
    end 
    end 
end 

我現在已經是該網站的用戶選擇Team。當然,團隊中有一堆User s。對於他們每個人,UserReport將被添加到Report。在new.html.haml,我會寫這個:

=fields_for :user_reports do |b| 
    =b.hidden_field :user_id, user.id 
    =user.name 

並且有問題。我如何獲得user.nameuser.id或此表單構建器中的任何東西?我需要在那裏輸出用戶名,否則網站用戶將無法知道誰是誰。

我希望你能理解我的問題,我現在有點絕望。

回答

1
class ReportsController < ApplicationController 
    def new 
    @team = Team.find params[:team_id] 
    @report = Report.new 
    @urs = [] 
    @team.users.each do |user| 
     ur = @report.user_reports.build 
     ur.user_id = user.id 
     @urs << ur 
    end 
    end 
end 

在你看來:

= form_for @report do |f| 
    =f.fields_for :user_reports, @urs do |b| 
    =b.hidden_field :user_id 
    =b.object.user.name