2012-10-05 27 views
0

我有下面的代碼使用Formtastic。如何在Rails窗體中定義嵌套關聯?

- 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都將呈現。我希望它的作用範圍僅限於current_user的log_entries。

我該怎麼做?

回答

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