使增量函数有效的正确方法是什么?

时间:2016-12-18 12:30:14

标签: ruby-on-rails model increment

我正在创建一个网站,让人们可以在几个章节中阅读短篇小说。 为此,我在一个新的脚手架中嵌套了一个章节脚手架,并将它们(小说has_many:章节,章节属于:小说)联系在一起。 但是我试图在URL中获取章节的数字(而不是id,它永远不会减少)。按原样设置章节不是问题,但我想自动化章节号而不需要用户自己添加章节号。

为了做到这一点,我认为我所需要的只是通过检查self.class.where(:novel_id => @novel).count来获得当前小说中有多少章。此时,我没有任何问题,但是当我尝试增加此数字时它变得复杂,我收到错误:undefined method 'anoter_one' for 0:Fixnum

这是我模型中的“another_one”函数(我试过一些东西)

  def another_one
    @number = self.class.where(:novel => @novel).count.to_i
    @number.increment
  end

这是控制器

  def create
    @novel = Novel.find(params[:novel_id])
    @chapter = Chapter.new(chapter_params)
    @chapter.chapter_number.another_one
    @chapter.novel = @novel
    if @chapter.save
      redirect_to novel_chapter_path(@novel, @chapter), notice: 'Chapter was successfully created.'
    else
      render :new
    end
  end

我做错了什么?

提前谢谢

1 个答案:

答案 0 :(得分:0)

您的来电function myFunc() { document.getElementById("someid").submit(); } - 这是anoter_one的{​​{1}}错误拼写 - 而不是模型。

解决此问题的一种方法是使用association callback

another

为了正确调用回调,您需要在父项之外构建关联项:

@chapter.chapter_number