0

好的,我很难找到解释我的问题的词语。我希望你能理解和帮助我,因为坦率地说,我快疯了。

假设我有四个模型:UserTeam和。我有这个: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. 在团队中,当然是一堆Users。对于它们中的每一个,aUserReport将被添加到Report. 在 中new.html.haml,我会这样写:

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

还有问题。我怎样才能在这个表单生成器中获得user.nameor the或任何东西?user.id我需要在那里输出用户名,否则站点用户将无法知道谁是谁。

我希望你能理解我的问题,我现在有点绝望。

4

1 回答 1

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
于 2012-10-02T08:24:49.540 回答