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)
で、投稿とボードを置き換えることができるので、両方で機能しますか?