无法修改冻结哈希

时间:2013-06-26 19:49:26

标签: ruby-on-rails ruby-on-rails-3 hash

每次尝试运行此代码时,我都会遇到上述错误。我试图从表单中删除信息。你能看一下“破坏”的方法吗?

class ArticlesController < ApplicationController

  def show
    @article = Article.find(params[:id])
  end

  def new   
    @article = Article.new
  end

  def create
    @article = Article.new(params[:article])
    @article.save
    redirect_to article_path(@article)
  end

  def destroy 
    @article = Article.new(params[:article])
    @article.delete
    @article.save
    redirect_to article_path(@article)   
  end

  def edit
    @article = Article.find(params[:id]) 
  end   
end

2 个答案:

答案 0 :(得分:1)

删除或销毁模型后,无法更新或保存模型。只需删除@article.save行。

另外,在你的destroy方法中,为什么你只创建一个新的Article实例来删除下一行呢?你的破坏方法应该只有这个

def destroy
  @article.delete
  redirect_to article_path(@article)
end

你也可以在模型中定义destroy方法而不是控制器,只需说

def destroy
  self.delete
end

答案 1 :(得分:0)

我遇到了无法修改冻结哈希问题的问题,这是我用来修复它的解决方法/ hack。这是一种解决方法而非最终解决方案。

放下桌子: - 来自rails控制台:ActiveRecord :: Migration.drop_table(:table_name)

将模型文件编号增加1,重命名文件: - db / migrate / 1234_create_table_name.rb - &gt; 1235_create_table_name.rb

rake db:migrate