【问题标题】:Assigning a nested attribute with Formtastic使用 Formtastic 分配嵌套属性
【发布时间】:2010-10-27 00:20:00
【问题描述】:

我一直在尝试解决这个问题,但仍然没有运气。我有一个连接 CompaniesPeople 的 company_relationships 表,其中存储了一个额外的字段来描述名为“corp_credit_id”的关系的性质。我可以让表单正常工作,为一个人添加 company_relationships,但我似乎不知道在这样做时如何设置该修饰符字段。有什么想法吗?

关于我的项目的更多信息:人们通过 company_relationships 拥有许多公司。有了那个额外的字段,我用它来将所有特定的关系组合在一起。所以我可以对一个人的医生、承包商等进行分组。

我的模型:

Company.rb(删节)

class Company < ActiveRecord::Base
   include ApplicationHelper

has_many :company_relationships
has_many :people, :through => :company_relationships

Person.rb(删节)

class Person < ActiveRecord::Base
include ApplicationHelper

has_many :company_relationships
has_many :companies, :through => :company_relationships

accepts_nested_attributes_for :company_relationships

company_relationship.rb

class CompanyRelationship < ActiveRecord::Base
attr_accessible :company_id, :person_id, :corp_credits_id
belongs_to :company
belongs_to :person
belongs_to :corp_credits

end

我的表单部分,使用 formtastic。

<% semantic_form_for @person do |f| %>
<%= f.error_messages %>
<% f.inputs do %>
 ...
<%= f.input :companies, :as => :check_boxes, :label => "Favorite Coffee Shops", :label_method => :name,  :collection => Company.find(:all, :conditions => {:coffee_shop => 't'}, :order => "name ASC"), :required => false %>

所以我想做的是在该输入中使用 :corp_credit_id => '1' 来为 Coffee Shop 分配该属性。但是 formtastic 似乎不允许这种分配发生。

关于如何做到这一点的任何想法?

【问题讨论】:

  • 你的意思是说,当你创建一个公司是咖啡店时,join表中的corp_credit_id列应该设置为'1'?
  • 不,我实际上在 Company 模型中有布尔值来确定它是否真的是一家咖啡店。我要做的是在更新人员时设置 corp_credit_id,这样我就可以分配他们所有的咖啡店。

标签: ruby-on-rails ruby formtastic


【解决方案1】:

你在寻找类似的东西

  <% semantic_form_for @person do |form| %>
    <% form.semantic_fields_for :company_relationships do |cr_f| %>
    <%= cr_f.input :corp_credit_id  %>
<% end %>

documentation

【讨论】:

  • 我已经尝试过这种方法,最终我会根据现有公司关系的数量显示几个复选框。我想做的是有一个允许多项选择的复选框或选择框。在提交时,它应该更新 company_relationships 并在 corp_credit_id 字段中存储一个“1”,如果是咖啡店的话。 (其他类型关系的其他数字)。
猜你喜欢
  • 2020-03-15
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多