【问题标题】:i can't find whats undefined method "description" on my code我在我的代码上找不到什么未定义的方法“描述”
【发布时间】:2017-01-28 04:46:59
【问题描述】:

我是新手,想在 Rails 上学习 Ruby 我从 youtube 上的教程中学习了这段代码。

我一直在寻找未定义的方法“描述”。

这是我的代码 jobs_controller.rb

类 JobsController

def index
    @jobs = Job.all.order("created_at DESC")
end

def show
end

def new
    @job = Job.new
end

def create
    @job = Job.new(jobs_params)

    if @job.save
        redirect_to @job
    else
        render "New"
    end
end

def edit
end

def update
end

def destroy #to delete
end

private
def jobs_params
    params.require(:job).permit(:title, :description, :company, :url)
end

def find_job
    @job = Job.find(params[:id])
end

结束

【问题讨论】:

  • 请将代码 sn-ps 发布为文本,而不是图像。
  • 您的@job 实例没有描述属性。您需要通过迁移添加它。

标签: ruby-on-rails ruby


【解决方案1】:

Description 不是 Job 模型/表的属性,您仍然在表单中使用它_因为这就是它给出未定义方法描述的原因。

【讨论】:

    【解决方案2】:

    你没有关于你的工作模式的描述。在控制台中运行此命令:

    rails g migration add_description_to_jobs description
    

    'add_description_to_jobs' 自己创建迁移文件,'description' 将创建一个字符串字段'description'。如果您说“description:integer”,它会将其创建为整数,但在这种情况下您不需要它。

    【讨论】:

      【解决方案3】:

      我可以看到你正在使用简单的 simple_form_for 和 @job,并且在你的代码中

      f.input :description, label: "Job Description"
      

      所以这个错误意味着你的 @job 对象没有你在 f.input 中使用过的“description”属性,请检查一下。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-06
        • 1970-01-01
        • 2018-05-04
        • 1970-01-01
        相关资源
        最近更新 更多