首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveSupport::HashWithIndifferentAccess

ActiveSupport::HashWithIndifferentAccess
EN

Stack Overflow用户
提问于 2013-06-12 01:34:04
回答 1查看 1.9K关注 0票数 0

我的控制器是这样的

代码语言:javascript
运行
复制
class FriendController < ApplicationController
  def friend_list
    @user = User.new
  end

  def be_mine_friend
    @user = params[:user]
    if @user.save?
        redirect_to friend_mine_friend_url
        flash[:notice] = "#{@user[:name]} have been added to my friend list"
    else
        redirect_to friend_friend_list_path
    end     
  end

  def mine_friend
    @title = "Details list of Mine Friend"
    @friend = @user.paginate(page: params[:page], per_page: 10)
    respond_to do |format|
      format.html 
      format.json { render json: @friend }
    end
  end
end

查看friend_list的页面

代码语言:javascript
运行
复制
    <div class="container">
        <%= notice %>
        <%#= errors %>
        <%= form_for(@user, url: friend_be_mine_frien_path) do |user| %>
            <%= user.text_field 'name', placeholder: "Your name Please" %></br>
            <%= user.text_field 'email', placeholder: "Your Email Please" %></br>
            <%= user.text_field 'address', placeholder: "Your Address Please" %></br>
            <%= user.submit "Be Mine Friend", class: "btn btn-primary" %>
        <% end %>
    </div>

view page for mine_friend

<div class="container">
    <p><strong><%= @title %></strong><p>
        <%= notice %>
    <%= will_paginate @friend, previous_label: "<<", next_label: ">>", class: "pagination pagination-large" %>
    <table class="table table table-striped">
        <tr>
            <th>Name</th>
            <th>Address</th>
            <th>Email</th>
        </tr>
        <% @friend.each do |friend| %>
        <tr>    
            <td><%= friend.name %></td>
            <td><%= friend.address %></td>
            <td><%= friend.email %></td>
        </tr>
        <% end %>   
    </table>
</div>

模型是

代码语言:javascript
运行
复制
class User < ActiveRecord::Base
  attr_accessible :address, :email, :message, :name

  validates :address, :email, :message, :name, presence: :true
end

当我试图从friend_list中拯救用户时,我得到了这样的结果

代码语言:javascript
运行
复制
Processing by FriendController#be_mine_friend as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"5A1dXtuYJpfqpOphkdl+WA657T3ok2zu/8U1v1B8tEg=", "user"=>{"name"=>"Amritdeep", "email"=>"amritdeepdhungana@hotmail.com", "address"=>"Bou"}, "commit"=>"Be Mine Friend"}
Completed 500 Internal Server Error in 1ms6090>:

错误是

代码语言:javascript
运行
复制
NoMethodError - undefined method `save?' for #<ActiveSupport::HashWithIndifferentAccess:0x00000003c06090>:

我现在该怎么做?你们有什么解决方案吗?我不知道为什么会出现这个ActiveSupport::HashWithIndifferentAccess错误。你们对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-12 01:37:04

代码语言:javascript
运行
复制
@user = params[:user]
if @user.save?

params:user是一个散列。它不是用户对象。这是常态:

代码语言:javascript
运行
复制
@user = User.create(params[:user])
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17050271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档