[英]has many didn't work with my view
I'm trying to get my has_many working. 我正在尝试让has_many工作。
I've two models: 我有两个模型:
project: 项目:
project has_many :tags 项目has_many:标签
tags: 标签:
tags belongs_to :project 标签归属地:项目
my project_controller: 我的project_controller:
def new
@project = Project.new
@project.tags = Tags.new
end
but what is the right view? 但是正确的看法是什么? I tried something like this: 我尝试过这样的事情:
= form_for @project do |f|
= f.text_field :title
= f.text_area :desc
= f.fields_for :tags, @project.tags do |f_tags|
= f_tags.text_field :name, placeholder: 'Tag-Name'
But I get a error like this: undefined method 'name' for # <Tag::ActiveRecord_Associations_CollectionProxy:0x00007f4456cc7148>
但我收到这样的错误:# <Tag::ActiveRecord_Associations_CollectionProxy:0x00007f4456cc7148>
未定义方法'name'
I didn't get my mistake. 我没弄错。
And how I can add multiple tags? 以及如何添加多个标签? My idea was to duplicate the div where the tag are. 我的想法是复制标签所在的div。
I think you want to call build
on your tags relation, and then not pass tag objects to your fields_for
. 我认为您想在标签关系上调用build
,然后不将标签对象传递给您的fields_for
。
Controller: 控制器:
def new
@project = Project.new
@project.tags.build
end
View: 视图:
= f.fields_for :tags do |f_tags|
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.