ruby-on-rails – Rails:如何实现帖子视图的数量?
有什么问题?:
我正在创建一个通用博客,并致力于创建基本功能. 艺术状态: 此时我有两个控制器/模型:发布和评论.我将为您提供我的架构,以帮助您更好地了解情况. 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 end 我做了什么: # 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文件中,我也添加了下面的部分. 它是如何工作的: 我知道我必须考虑一个已经看过帖子的用户是否重新访问,但我还没有到那里,直到我确切知道如何访问视图变量/初始化/增加它. 我非常感谢你的帮助! – 最大 解决方法
要在调用@ post.save之前将Post的view属性初始化为零(作为if语句的副作用):
@post.view = 0 然后在您的控制器动作中呈现帖子,您将需要将帖子的视图属性更新为1.如果多个人在数据库读取和写入之间同时访问页面,则会出现问题,但这至少会让您进入正确的方向. 保存数据库后@view在此处分配给值的任何操作都没有完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |