【问题标题】:Rails 4 - undefined method `name' for nil:NilClass [closed]Rails 4 - nil:NilClass的未定义方法“名称”[关闭]
【发布时间】:2014-07-18 03:05:57
【问题描述】:

当我尝试访问视图时出现以下错误:undefined method `name' for nil:NilClass

控制器HomesController

class HomesController < ApplicationController

    def index
        @homes = Home.all
    end

    def new
        @home = Home.new
    end

    def create
        @home = Home.new home_params
        if @home.save
            redirect_to @home, notice: 'Registro cadastrado com sucesso.'
        else
            render action: :index
        end
    end

    def show
        @home = Home.find params[:id]
    end

    private

        def home_params
            params.require(:home).permit(:name, :ip_servidor)
        end

end

查看show.html.erb:

<p id="notice"><%= notice %></p>

<h2>Imóvel: <%= @home.name %></h2>
<h2>Ip do Servidor: <%= @home.ip_servidor %></h2>

<%= link_to "Editar", edit_home_path(@home) %>

【问题讨论】:

  • 似乎 @home 为零,因此您的控制器操作没有运行。你确定这是确切的代码,例如。您的表演动作不在private 行下?
  • 显示传递的参数。
  • 你的问题是什么?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 web


【解决方案1】:

之前使用的是 SQLite3 数据库,然后切换到 postgresql 就可以了。

文件database.yml

default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

之前

development:
  <<: *default
  database: db/development.sqlite3

之后

development:
  adapter: postgresql
  pool: 5
  host: localhost
  encoding: unicode
  username: postgres
  password: postgres
  database: webapi_development

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    相关资源
    最近更新 更多