这是我的故事:我刚才有这样的设置.
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
t.integer :total_pageviews
Run Code Online (Sandbox Code Playgroud)
和"total_pageviews"工作正常.我可以将它设置为零,增加它,乘以它,调用它,无论如何.但是,我想说要添加:
t.integer :total_votes
Run Code Online (Sandbox Code Playgroud)
如何将total_votes配置为属性我需要做什么?每当我尝试使用"total_votes"时,我都会得到未定义的方法错误.我认为答案就像耙子db:migrate或类似物.
我在comments_controller.rb中有一个名为update_status的函数:
def update_status
@comment.relative_value = @comment.points_up - @comment.points_down
randomize!
end
Run Code Online (Sandbox Code Playgroud)
哪里 @comment = Comment.find(params[:id])
由于我设置网站的方式,我希望能够为任何评论c调用c.update_status.例如,在我的posts_controller中,我希望能够这样做:
def show
@posts = Post.order('trending_value DESC').page(params[:page]).per(5)
@post = Post.find(params[:id])
@comments = @post.comments
@comments.each do |c| #TODO: FIX
c.update_status
c.save
end
end
Run Code Online (Sandbox Code Playgroud)
我如何让它工作?我一直得到未定义的方法错误# < Comment >.我必须这样做def self.update_status吗?这似乎也没有用.
在 Kaminari 中,这是有效的:
<%= paginate @posts %>
Run Code Online (Sandbox Code Playgroud)
但如果我做类似的事情:
<%= paginate @user.posts %>
Run Code Online (Sandbox Code Playgroud)
我明白了
undefined method `current_page' for #<Class:0x58378e0>
Run Code Online (Sandbox Code Playgroud)
我该如何解决?我听说继承资源有帮助,但我不知道如何使用它来修复这个错误。