“Sinatra中未定义的方法'删除'为nil:NilClass”

时间:2016-09-15 04:03:07

标签: ruby-on-rails ruby sinatra erb

我正在Sinatra的一个项目上工作,我似乎无法使用delete方法。我的意图是能够使用模态中的表单删除对象。这就是我所拥有的:

routes.rb中:

  delete '/songs/:id/delete' do

     @song = Song.where(:id => params[:id]).first

     @song.delete

     redirect to '/songs'

  end

index.erb:

 <form action="/songs/:id/delete" method="post">
        <input type="hidden" name="_method" value="delete">
          <div id="song_id">
            <label>id:</label>
            <input type="text" name="id">
          </div>
          <button type="submit" id="delete">Delete</button>
          <a href="/songs"><div id="back">Back to Songs</div></a>
        </form>

感谢您的反馈。 (另外,抱歉缩进并不完美)

1 个答案:

答案 0 :(得分:1)

您必须将id注入表单。不是:id

 # example
 <form action="/songs/1234/delete" method="post">

此外,您可以查看puts params发生了什么。