gpt4 book ai didi

ruby-on-rails - rails : How to Implement Number of Post Views?

转载 作者:数据小太阳 更新时间:2023-10-29 07:36:31 25 4
gpt4 key购买 nike

有什么问题?

我正在创建一个通用博客,并致力于创建基本功能。问题是 View (有多少人看过特定帖子)未正确显示。

技术现状:

此时我有两个 Controller /模型:发布和评论。我将为您提供我的架构,以帮助您更好地了解情况。

create_table "comments", :force => true do |t|
t.string "name"
t.text "body"
t.integer "like"
t.integer "hate"
t.integer "post_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end

add_index "comments", ["post_id"], :name => "index_comments_on_post_id"

create_table "posts", :force => true do |t|
t.string "name"
t.text "content"
t.integer "view"
t.integer "like"
t.integer "hate"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end

我做了什么:在 Post Controller 中,我尝试通过在有人创建帖子时将其设置为 0 来初始化 View 。

# POST /posts
# POST /posts.json
def create
@post = Post.new(params[:post])
@view = @post.view
@view = 0

respond_to do |format|
if @post.save
format.html { redirect_to posts_path, notice: 'success.' }
format.json { render json: @post, status: :created, location: @post }
@view = @post.view
@view = 0
else
format.html { render action: "new" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end

end

帖子应该能够显示其浏览量。所以在帖子的 show.html.erb 文件中,我也添加了下面的部分。 <p>
<b>views:</b>
<%= @post.view %>
</p>

它为什么不起作用:根本没有显示观看次数。我检查了数据库,即使每当用户添加帖子时我都尝试将其初始化为 0,该列还是空白的。我猜我尝试访问“ View ”变量的方式有问题吗?通过做来访问它是不对的
@view = @post.view?

我知道我必须考虑是否已经看过该帖子的用户再次访问,但在我确切知道如何访问 View 变量/初始化/递增它之前我还没有考虑。

非常感谢您的提前帮助!

-最大

最佳答案

要将 Post 的 View 属性初始化为零,调用@post.save 之前(作为 if 语句的副作用):

@post.view = 0

然后在呈现帖子的 Controller 操作中,您需要将帖子的 View 属性更新为 1。如果多人在数据库读取和写入之间同时访问该页面,这将出现问题,但它至少会让您朝着正确的方向前进。

@view 在保存数据库后 对值的赋值没有完成任何事情。

关于ruby-on-rails - rails : How to Implement Number of Post Views?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13327824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com