社交喜欢
Socialization likes
我开始使用Socializationgem。
因此,使用以下设计创建了用户模型:
class User < ActiveRecord::Base
has_many :posts
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable
acts_as_follower
acts_as_followable
acts_as_liker
end
然后我用脚手架创建了Post:
class Post < ActiveRecord::Base
belongs_to :user
acts_as_likeable
end
我想允许用户点赞帖子。但我不知道如何用点赞按钮创建视图,也不知道如何为点赞编写方法。请给我举个小例子。我是 rails
的新人
我在 veiw/posts/show.html.erb
中创建了 link。
<%= link_to "Like", like_post_path(@post),
:method => :post, :class => 'btn btn-primary btn-xs' %>
和app_contoller中的方法:
def like
@post = Post.find(params[:id])
current_user.like!(@post)
end
这个怎么写路由?
您已经可以先在您的控制台中进行测试,看看它是如何工作的:rails c
user = User.first
post = Post.first
user.like!(post)
user.likes?(post)
因此您可以创建一个操作:likes
在您的帖子控制器中。
def likes
@user = current_user # before_action :authenticate_user, only: [:likes]
@post = Post.find(params[:id])
@user.like!(@post)
redirect_to :back, notice: "Liked this post successfully!"
end
并为该操作创建路线:
get 'post/:id/likes', to: 'posts#likes', as: :likes
在您看来:
<%= link_to 'like', likes_path(@post) %>
我开始使用Socializationgem。 因此,使用以下设计创建了用户模型:
class User < ActiveRecord::Base
has_many :posts
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable
acts_as_follower
acts_as_followable
acts_as_liker
end
然后我用脚手架创建了Post:
class Post < ActiveRecord::Base
belongs_to :user
acts_as_likeable
end
我想允许用户点赞帖子。但我不知道如何用点赞按钮创建视图,也不知道如何为点赞编写方法。请给我举个小例子。我是 rails
的新人我在 veiw/posts/show.html.erb
中创建了 link。
<%= link_to "Like", like_post_path(@post),
:method => :post, :class => 'btn btn-primary btn-xs' %>
和app_contoller中的方法:
def like
@post = Post.find(params[:id])
current_user.like!(@post)
end
这个怎么写路由?
您已经可以先在您的控制台中进行测试,看看它是如何工作的:rails c
user = User.first
post = Post.first
user.like!(post)
user.likes?(post)
因此您可以创建一个操作:likes
在您的帖子控制器中。
def likes
@user = current_user # before_action :authenticate_user, only: [:likes]
@post = Post.find(params[:id])
@user.like!(@post)
redirect_to :back, notice: "Liked this post successfully!"
end
并为该操作创建路线:
get 'post/:id/likes', to: 'posts#likes', as: :likes
在您看来:
<%= link_to 'like', likes_path(@post) %>