Ruby on rails 未定义的方法rails 4

Ruby on rails 未定义的方法rails 4,ruby-on-rails,ruby,Ruby On Rails,Ruby,为什么每次使用此代码块时都会出现未定义的方法错误: 但是当我使用each循环时,它会工作吗 <% @user_infos.each do |user| %> <%= user.website %> <% end %> 用户信息控制器: class UserInfosController < ApplicationController before_action :set_user_info, only: [:show, :edit, :

为什么每次使用此代码块时都会出现未定义的方法错误:

但是当我使用each循环时,它会工作吗

<% @user_infos.each do |user| %>
   <%= user.website %>
<% end %>

用户信息控制器:

class UserInfosController < ApplicationController
  before_action :set_user_info, only: [:show, :edit, :update, :destroy]

  respond_to :html

  def index
    @user_infos = UserInfo.all
    respond_with(@user_infos)
  end

  def show
    respond_with(@user_info)
  end

  def new
    @user_info = current_user.user_infos.build
    redirect_to :back
  end

  def edit
  end

  def create
    @user_info = current_user.user_infos.build(user_info_params)
    @user_info.save
    redirect_to :back
  end

  def update
    @user_info.update(user_info_params)
    respond_with(@user_info)
  end

  def destroy
    @user_info.destroy
    respond_with(@user_info)
  end

  private
    def set_user_info
      @user_info = UserInfo.find(params[:id])
    end

    def user_info_params
      params.require(:user_info).permit(:website, :location)
    end
end
class HomeController < ApplicationController
  def index
    @questions = Question.all.order("created_at desc")
  end

  def profile
    @user = User.find(params[:id])
    @answer = Answer.all.order("created_at")
    @questions = Question.all.order("created_at")
    @user_info = UserInfo.new
    @user_infos = UserInfo.all.order("created_at desc")
  end
end
class userinfoscocontroller
家庭控制器:

class UserInfosController < ApplicationController
  before_action :set_user_info, only: [:show, :edit, :update, :destroy]

  respond_to :html

  def index
    @user_infos = UserInfo.all
    respond_with(@user_infos)
  end

  def show
    respond_with(@user_info)
  end

  def new
    @user_info = current_user.user_infos.build
    redirect_to :back
  end

  def edit
  end

  def create
    @user_info = current_user.user_infos.build(user_info_params)
    @user_info.save
    redirect_to :back
  end

  def update
    @user_info.update(user_info_params)
    respond_with(@user_info)
  end

  def destroy
    @user_info.destroy
    respond_with(@user_info)
  end

  private
    def set_user_info
      @user_info = UserInfo.find(params[:id])
    end

    def user_info_params
      params.require(:user_info).permit(:website, :location)
    end
end
class HomeController < ApplicationController
  def index
    @questions = Question.all.order("created_at desc")
  end

  def profile
    @user = User.find(params[:id])
    @answer = Answer.all.order("created_at")
    @questions = Question.all.order("created_at")
    @user_info = UserInfo.new
    @user_infos = UserInfo.all.order("created_at desc")
  end
end
class HomeController

我的意图不是循环,而是简单地在纵断面图中显示uer的信息。循环导致了双段落,这肯定不是我想要的。

@user\u infos
是记录的集合,而不是单个记录。所以你不能使用
,这会给你
未定义的方法
错误

@user_infos = UserInfo.all.order("created_at desc")
提供所有用户信息,因此您无法使用

<%= @user_infos.website %>

如果你反对自己写一个循环,你可以用map把所有的网站放在一个数组中

<%= @user_infos.map(&:website) %>

这是因为@user\u info是@user\u info实例的数组。数组没有方法
网站
,但实例有。