我需要在这种情况下建立合作关系,帮助:下嵌套表格嵌套在Rails的3.2
我有3种型号:Campaign
,CampaignPost
,User
我想实现的东西像FF:
- 运动有许多campaign_posts
- 用户每有征战
- 营许多CampaignPost aignPost属于用户
- CampaignPost属于广告活动
在创建一个全新的活动,CURRENT_USER可以添加CampaignPost成竞选,并最终CampaignPost将用户进行分组。并能够计算每个用户的职位#在一个竞选
首先我所做的是在用户模式,我窝CampaignPost:
user.rb:
# Campaign Posts
has_many :campaign_posts
accepts_nested_attributes_for :campaign_posts, :allow_destroy => true,
:reject_if => lambda { |a| a[:post].blank? }
campaign_post.rb
class CampaignPost < ActiveRecord::Base
attr_accessible :campaign_id, :post, :user_id
belongs_to :user
belongs_to :campaign
end
campaign.rb
# Users
has_and_belongs_to_many :users
has_many :campaign_posts
我的编辑形式:
= simple_form_for(@campaign, remote: true) do |f|
.admin_tracker_wrapper
.new_campaign_header_bg
.new_campaign_header
= image_tag('/assets/admin_wrench_03.png')
%b= "Admin"
.new_campaign_bg#new_campaign_bg1
.inputs#inputs_new
= f.input :name, label: false, placeholder: "Enter campaign name.."
= f.text_area :objective, placeholder: "Enter objective.."
= submit_tag "Edit", class:"edit_campaign_btn"
- @campaign.campaign_posts.build
.new_campaign_bg#new_campaign_bg2
- @campaign.users.each do |user|
.post_header
.row-fluid
.span1
.circle
- if user.photo_url.blank?
= image_tag 'avatar.png'
- else
= image_tag user.photo_url, :alt=>''
.span2.post_header_full_name
%span.full_name= user.full_name
%br
- if @campaign.campaign_posts.count <= 1
%span.posts_count= "#{@campaign.campaign_posts.count} Post"
- else
%span.posts_count= "#{@campaign.campaign_posts.count} Posts"
.span1.pull-right
%a{href: "#", class:"title"}
%hr
%br
#d-form
- @campaign.campaign_posts.each.with_index(1) do |campaign,index|
/= campaign.post
.inputs#inputs_edit
= user.fields_for :campaign_posts, campaign do |c|
%span.post_index= "#{index} . "
= c.text_field :post
= submit_tag "Enter", class:"enter_campaign_btn"
%hr
在我的形式,我已经@campaign作为父窗体,然后我窝用户通过@campaign.users
, 然后有fields_for
准备campaign_posts
但fields_for
campaign_posts
麦凯纳没有表现出来,我认为关系或形式本身有问题。
任何解决方法将不胜感激。