Puede crear acciones de controlador a las que se vincule. Por ejemplo, en una aplicación, tengo las siguientes dos acciones agregadas a un controlador de usuario. Una vez que las rutas también están configuradas, utilizo los helpers de URL para vincular las acciones desde mi vista, y termino mostrando los mensajes flash a través de devoluciones de llamada de javascript.
UsersController:
def follow
@user = User.find(params[:id])
if current_user
if current_user == @user
flash[:error] = "You cannot follow yourself."
else
current_user.follow(@user)
RecommenderMailer.new_follower(@user).deliver if @user.notify_new_follower
flash[:notice] = "You are now following #{@user.monniker}."
end
else
flash[:error] = "You must <a href='/users/sign_in'>login</a> to follow #{@user.monniker}.".html_safe
end
end
def unfollow
@user = User.find(params[:id])
if current_user
current_user.stop_following(@user)
flash[:notice] = "You are no longer following #{@user.monniker}."
else
flash[:error] = "You must <a href='/users/sign_in'>login</a> to unfollow #{@user.monniker}.".html_safe
end
end
config/route.rb:
resources :users do
member do
get :follow
get :unfollow
end
end
A continuación, en su opinión, se puede utilizar el asistente de url para vincular a la acción del controlador:
<%= link_to "Unfollow", unfollow_user_path(@user) %>
Este no tiene nada que ver con la gema, es algo básico de Rails. Si fuera tú, obtendría un buen libro de Rails. Los libros son buenos, son conocimientos estructurados. –