Rails 4 - 范围 - 限制为用户自己的属性

Rails 4 - Scopes - Limiting to user's own attributes

我正在尝试在 Rails 4.

中制作一个应用程序

我的个人资料表单允许用户创建个人资料。个人资料的一部分是关于他们的资格。

协会是:

profile.rb

has_many :qualifications  
    accepts_nested_attributes_for :qualifications,  reject_if: :all_blank, allow_destroy: true

资格 rb

  belongs_to :profile

然后,我的个人资料视图文件夹包含一个部分以显示该个人资料的资格。节目部分有:

<% Qualification.pending.order(year_earned: :asc).each do |qualification| %>
            <div class="row">

                      <div class="col-md-12">
                        <div class="profilequalifications">
                            <%= qualification.current_study  %>

                        </div>  
                      </div>    
            </div>

          <% end %>

我的资格模型的范围为:

  scope :pending, -> { where(pending: true) }

问题是,每个配置文件都列出了所有资格。我如何将此限制为仅列出自己的资格的每个配置文件。

我试过在各个地方将 'Profile' / '@profile' 添加到部分视图中,但这些尝试只会产生错误。

是否有关于如何执行此操作的示例。我认为 rails 可能知道如何执行此操作,因为资格查看表单嵌套在配置文件表单中。

采纳蒂姆的建议

我把资格部分展示改成:

<% profile.qualifications.pending.order(year_earned: :asc).each do |qualification| %>
            <div class="row">

                      <div class="col-md-12">
                        <div class="profilequalifications">
                            <%= qualification.current_study  %>

                        </div>  
                      </div>    
            </div>

然后我将配置文件显示页面更改为:

<%= render :partial => 'profiles/qualifications', profile: @profile %>

我收到这个错误:

#<#:0x007f97ba143030>

的未定义局部变量或方法“配置文件”

我认为您需要将您的个人资料传递给部分,所以:

<%= render 'your_partial', profile: @profile %>

然后就可以在局部使用了,例如

<% profile.qualifications.each do |q| %>
  <%= q.name %>
<% end %>