form_for使用多态关系

时间:2012-07-22 06:44:04

标签: ruby-on-rails ruby-on-rails-3 polymorphic-associations form-for nested-form-for

我有一个可以有很多交易的用户模型。事务可以是type1,type2或type3,每种类型都有不同的属性集。例如:type1包含属性a,b和c;而type2包含属性a,c,d和e。用户,交易和类型模型定义如下:

class User < AR::Base
  has_many :transactions
end

class Transaction < AR::Base
  belongs_to :user
  belongs_to :transactionable, polymorphic: true
end

class Type1 < AR::Base
  has_many :transactions, as: :transactionable
end

class Type2 < AR::Base
  has_many :transactions, as: :transactionable
end

class Type3 < AR::Base
  has_many :transactions, as: :transactionable
end

现在,在生成html表单时,我有

/app/views/user/new.html.erb

<%= form_for @user do |f| %>
  ***
<% end %>

/app/views/user/show.html.erb

<%= form_for ... do |f| %>
  <%= f.text_field: a %>
  <%= f.text_field: b %>
  <%= f.text_field: c %>
<% end %>

在后面的form_for帮助器中,我想收集type1模型属性的用户输入数据。任何人都可以在后面的form_for帮助器中帮助应该进行什么操作?我试过@ user.transactions.build_type1,但它显示错误。知道什么可能出错吗?

0 个答案:

没有答案