0

我有以下使用 Formtastic 的代码。

- if can? :update, @workout
  = semantic_form_for ew.exercise, :url => user_exercise_path(@user, ew.exercise) do |exercise|
    %table
      %thead
        %tr
          %th.reps Reps
          %th.weight Weight
      %tbody
        = exercise.semantic_fields_for :log_entries do |log_entry|
          = render 'log_entry_fields', :f => log_entry
    .links
      = link_to_add_association 'Add Set', exercise, :log_entries
    = exercise.actions do
      = exercise.action :submit

鉴于此,我的问题是 log_entries 为与练习相关的每个日志条目呈现 log_entries。

例如,如果 Bob 正在为 benchpress 记录日志条目,而 Hope 正在为 benchpress 记录日志条目,那么使用这种形式,这两个 log_entries 都将呈现。我想要它做的只是针对当前用户的 log_entries 进行该练习。

我该怎么做?

4

1 回答 1

0

我通过以下修改解决了它:

= exercise.semantic_fields_for :log_entries, exercise.object.log_entries.for_user(@user) do |log_entry|

逗号后的所有内容都是新的。我log_entry.rb用以下方法在我的身上创建了一个类方法:

def self.for_user(user)
  where(:user_id => user.id)
end
于 2012-10-05T00:57:49.873 回答