Retweet Function

Hello, good day!

This is a rather intricate question coming from a not so experienced ruby on rails user. Let’s get to it:

I am developing an app that has users, authors, microposts and tags. I want to implement something like a retweet button for the microposts:

The task is simple:

Get the params of a micropost(original user, original author, original tags)

“Retweet” it to my own wall, using these params, but also with my own user_id embedded in it.

So far I managed to “retweet” it, but there is one problem. As it is now, I am copying all the params and creating a new micropost with these params.

As this creates exact duplicate, I would like to know what would be the best approach to implement this function without creating replicas all over my app.

Here’s the codes:

ROUTES.rb

resources :microposts do

member do

get :retweet

end

end

MICROPOSTS_CONTROLLER.rb

def retweet

original_micropost = Micropost.find(params[:id])

if original_micropost

new_micropost = current_user.microposts.build(content: original_micropost.content, author_id: original_micropost.author_id)

if new_micropost.save

redirect_to user_path(current_user)

flash[:success] = “Retweet Successful”

else

redirect_to user_path(current_user), notice: new_micropost.errors.full_messages

end

else

redirect_back_or current_user

flash[:error] = “Retweet error!”

end

end

_MICROPOST.html.erb

<%= link_to (image_tag “retweet.png”), retweet_micropost_path(micropost) %>

Let me know if there is anything else needed to get around this.

Thank you in advance.