好的,我很难找到解释问题的词语。我希望你能理解并帮助我,因为坦率地说,我疯了。
假设我有四个模型:User
,Team
,Report
和UserReport
。我有这个:
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
个。对于每个人,UserReport
都要添加到Report
。在new.html.haml
中,我会写这个:
=fields_for :user_reports do |b|
=b.hidden_field :user_id, user.id
=user.name
还有问题。如何在此表单构建器中获取user.name
或user.id
或任何内容?我需要在那里输出用户名,否则网站用户将无法知道谁是谁。
我希望你理解我的问题,我现在有点绝望了。
答案 0 :(得分: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