我的简单删除操作存在问题。
我有一个观点
%p
Name:
= @element.name
%p
Description:
= @element.description
%p
= link_to 'edit', edit_element_path(@element)
|
= link_to 'delete', @element, :confirm => 'Are you shure?', :method => :delete
当我尝试在浏览器中单击该删除并且clik确定它表示它无法从未存在的表elements_muscle_groups中删除时,为什么他还试图从该不存在的表中删除?
顺便说一句,我正在使用Rails 4
您可以在屏幕截图中看到控制器代码。
对不起,请向eng和ty寻求帮助。
编辑: 嗨,我还有一件事要补充,
元素
has_and_belongs_to_many :muscle_groups
MuscleGroup
has_and_belongs_to_many :elements
所以也许它应该从elements_muscle_groups中删除,但为什么那个表不存在呢?
答案 0 :(得分:0)
我没有使用Rails 4,但我认为你试图错误地实现它: 你的破坏方法应如下所示: -
def destroy
@element = Element.find(params[:id])
if @element.destroy
flash[:message] = "Record destroy successfully."
redirect_to elements_path
else
flash[:error] = "Record destroy successfully."
render element_path(@element)
end
end
您可以相应地更改方法。希望它会有所帮助。
答案 1 :(得分:0)
来自rails api:
http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_and_belongs_to_many
has_and_belnogs_to_many:指定与另一个类的多对多关系。这通过中间连接表关联两个类。除非将连接表明确指定为选项,否则使用类名的词法顺序进行猜测。因此,Developer和Project之间的连接将提供默认的连接表名称“developers_projects”,因为“D”超出“P”。
所以你需要确保你有一个名为
的表 elements_muscle_groups
与element_id: integer
和muscle_group_id:integer
答案 2 :(得分:0)
迁移文件将如下所示,
class CreateElementsMuscleGroups < ActiveRecord::Migration
def change
create_table :elements_muscle_groups do |t|
t.integer :element_id
t.integer :muscle_group_id
t.timestamps
end
end
end
运行此迁移..这将解决问题..