保存后无法访问模型的ID?

时间:2014-02-22 22:57:12

标签: ruby-on-rails

我正在尝试链接到嵌套模型,但是,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

有什么想法吗?

1 个答案:

答案 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

可能是更多问题,但这是我迄今为止所发现的