怎么删除表的数据中的一行
ruby吧
全部回复
仅看楼主
level 1
似五味14 楼主
点了删除就是删除不了数据
booksController.rb
def destroy
@book = Book.find(params[:id])
@book.destroy
redirect_to :books, notice: "蔵书を削除しました。"
end
index.html.erb
</tr>
<% @books.each do |book| %>
<tr>
<td align="right"><%= link_to book.name ,book%></td>
<td><%= book.full_name %></td>
<td><%= book.publisher_name %></td>
<td>
<%= link_to "编集", [:edit, book]%> |
<%= link_to "削除", book, method: :delete,
confirm: "本当に削除しますか?" %>
</td>
</tr>
2014年10月06日 07点10分 1
level 12
先确认是否ORM的问题:
rails console
book = Book.find(5)
book.destroy
如果上述没问题,再看看是否为 rails 的问题。
看看 logs/development.log 是否有 DELETE 的动作?
运行时的SQL语法应从log里看得出来。
如果 log 里没有delete的访问,
也看看 rake routes 是否会处理delete的访问?
好像如果是HTML5的方式,
DELETE的方法好像是无效的。
以上是列出几个需确认的地方。
2014年10月06日 13点10分 2
level 1
似五味14 楼主
2.0.0-p481 :001 > book = Book.find(2)
Book Load (28.5ms) SELECT "books".* FROM "books" WHERE "books"."id" = ? LIMIT 1 [["id", 2]]
=> #<Book id: 2, number: 34343434, name: "fdfdfdf", full_name: "ggfgfd", publisher_name: "gdfgdfgd", price: 2222, kari_name: "dfdf", created_at: "2014-10-04 12:23:49", updated_at: "2014-10-04 12:23:49">
2.0.0-p481 :002 > book.destory
NoMethodError: undefined method `destory* for #<Book:0x007ffac1365dd0>
from /Users/yangliming/.rvm/gems/ruby-2.0.0-p481/gems/activemodel-3.2.1/lib/active_model/attribute_methods.rb:407:in `method_missing*
from /Users/yangliming/.rvm/gems/ruby-2.0.0-p481/gems/activerecord-3.2.1/lib/active_record/attribute_methods.rb:126:in `method_missing*
from (irb):2
from /Users/yangliming/.rvm/gems/ruby-2.0.0-p481/gems/railties-3.2.1/lib/rails/commands/console.rb:47:in `start*
from /Users/yangliming/.rvm/gems/ruby-2.0.0-p481/gems/railties-3.2.1/lib/rails/commands/console.rb:8:in `start*
from /Users/yangliming/.rvm/gems/ruby-2.0.0-p481/gems/railties-3.2.1/lib/rails/commands.rb:41:in `<top (required)>*
from script/rails:6:in `require*
from script/rails:6:in `<main>*
2014年10月06日 14点10分 3
level 12
这个问题我也没碰过,但查了一下别人类似的问题,可能是....
是不是你在 models/book.rb 里有什麼特别的配置?
把book.rb贴出来看看。
2014年10月07日 00点10分 4
level 1
似五味14 楼主
models/book.rb
class Book < ActiveRecord::Base
validates :number, presence: true,
uniqueness: true
validates :name, presence: true,
length: { minimum: 2, maximum: 20, allow_blank: true },
uniqueness: { case_sensitive: false }
validates :full_name, length: { maximum: 20 }
validates :publisher_name, length: { maximum: 20 }
validates :price, presence: true,
numericality: { only_integer: true,
greater_than: 0, less_than: 10000, allow_blank: true },
uniqueness: true
validates :kari_name, length: { maximum: 20 }
class << self
def search(query)
rel = order("number")
if query.present?
rel = rel.where("name LIKE ? OR full_name LIKE ?",
"%
#{query}%", "%#
{query}%")
end
rel
end
end
end
2014年10月07日 03点10分 5
level 12
试试:
book = Book.find(2)
book.public_methods 会印出哪些方法出来?
2014年10月08日 05点10分 6
1