0

2 つの異なるコントローラー (Posts & Boards) に 2 つのメソッドがあります。それらはほとんど同じです。違いは、モデル-インスタンス-関連付け名のみです。これを DRY するには、メソッドをモジュールに記述しようと思いますが、Post と Board 間で共有するにはどうすればよいですか?

def init_post_comments
    @user = current_user
    a = @user.posts.pluck(:id) # not very nice...
    b=params[:post_ids] ||= []
    b = b.map(&:to_i)
    follow = b - a
    unfollow = a - b
    follow.each do |id| # checkbox just checked
      @post = Post.find_by_id(id)
      if @post.users.empty?
        @post.update_attribute(:new_follow, true)
      end
      @user.posts << @post
    end
    unfollow.each do |id| # if checkbox was unchecked
      @post = Post.find_by_id(id)
      remove_post_from_user(@post)# here we destroy association
    end
    if follow.size > 0
      get_post_comments_data
    end

    redirect_to :back

  end

更新OK、メソッドをモデルの問題に移動する場合、ここで関連付けをどのように処理する必要がありますか? ここ@user.posts.pluck(:id)とここ@user.boards.pluck(:id)で、投稿とボードを置き換えることができるので、両方で機能しますか?

4

1 に答える 1