未定义的局部变量或方法`interface'for#&lt;#<class

时间:2016-03-11 21:45:14

标签: ruby-on-rails params

=“”

好的可以请一些人解释这个错误信息的含义,我个人认为,因为我的界面模型是干净的列,但另一方认为这是因为params :: username。

<li><%= link_to "Profile" , interface.to_param %></li>


class Interface < ActiveRecord::Base
    def to_param
        username
    end
end

控制器

class InterfacesController < ApplicationController
    #before_action :authenticate_user!

    def show
        @user = User.find_by(username: params[:username])
    end
end

路由

 devise_for :users
root 'posts#index'

  resources :interfaces, only: :show , param: :username

  resources :posts do 
    resources :comments
  end




create_table "interfaces", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

1 个答案:

答案 0 :(得分:0)

第二个参数链接应该是url所在的位置。

 <li><%= link_to "Profile" , interface.to_param %></li>

界面未定义。不确定您尝试做什么,但运行rake路由并插入您想要链接到那里的路径。像

这样的东西
      <li><%= link_to "Profile", interface_path(@interface) %></li>

并在show动作中定义@interface。