我正在尝试链接到嵌套模型,但是,id似乎不存在。
在这种形式中,我有以下
<% @photos.persons.each do |ans| %>
<div class="container">
<div class="row-fluid">
</p>
<p>
<%= ans.text %>
</p>
<h5><em>
<%= ans.commenter %> posted
<%= link_to "Persons", photo_person_path(photos_id: @photo.id, id: ans.id) %>
</em></h5>
</div>
</div>
<% end %>
然而,似乎ans没有id?我通过form_for创建了模型,但无法访问其id。这是我为人创造的行动
def create
@person = @photo.persons.new(params[:person])
if @person.anonymous == true
@person.commenter = "Anonymous"
else
@person.commenter = current_user.username
end
if @person.save
redirect_to photo(@photo)
else
redirect_to photos
end
end
有什么想法吗?
答案 0 :(得分:0)
<强> 1。 “人”强>
虽然Rails会自然地将person
复数为people
,但您的关联设置为什么?
你应该有这个:
#app/models/photo.rb
Class Photo < ActiveRecord::Base
has_many :persons, class_name: "Person"
end
<强> 2。 .save
强>
您未在@photo
方法中创建create
对象:
def create
@photo = Photo.find(params[:id])
@person = @photo.persons.new(person_params)
if @person.anonymous == true
@person.commenter = "Anonymous"
else
@person.commenter = current_user.username
end
if @person.save
redirect_to photo(@photo)
else
redirect_to photos
end
end
private
def person_params
params.require(:photo).require(:params)
end
可能是更多问题,但这是我迄今为止所发现的