Ruby on rails Ruby-如何获得视图中的关联哈希值?

Ruby on rails Ruby-如何获得视图中的关联哈希值?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是ruby新手。现在我正在做一个小项目。但我无法从散列值获取用户数据。这是我的代码- @user = {'name'=>"Chinmay", "email"=>"chixxx@gmail.com", "phone"=>"1234567890", "age"=>30} 在上面的数组中,我尝试在erb文件中获取每个数组 这是代码- Name : <%= @user.name %> Email: <%= @user.email %> Phone: &

我是ruby新手。现在我正在做一个小项目。但我无法从散列值获取用户数据。这是我的代码-

@user = {'name'=>"Chinmay", "email"=>"chixxx@gmail.com", "phone"=>"1234567890", "age"=>30}
在上面的数组中,我尝试在
erb
文件中获取每个数组

这是代码-

Name : <%= @user.name %>
Email: <%= @user.email %>
Phone: <%= @user.phone %>
Age: <%= @user.age %> Years
名称:
电邮:
电话:
年龄:岁
我在这里得到错误消息:

undefined method `name' for #<Hash:0x5e040d0>
的未定义方法“name”#
请帮帮我。让我知道如何在不使用任何循环的情况下获取哈希值

我再次尝试
@user[:name]
那一个也不起作用。空白消息来了

谢谢你的回答

而不是:

Name : <%= @user.name %>
Email: <%= @user.email %>
Phone: <%= @user.phone %>
Age: <%= @user.age %> Years
名称:
电邮:
电话:
年龄:岁
像这样做:

Name : <%= @user['name'] %>
Email: <%= @user["email"] %>
Phone: <%= @user["phone"] %>
Age: <%= @user["age"] %> Years
名称:
电邮:
电话:
年龄:岁
而不是:

Name : <%= @user.name %>
Email: <%= @user.email %>
Phone: <%= @user.phone %>
Age: <%= @user.age %> Years
名称:
电邮:
电话:
年龄:岁
像这样做:

Name : <%= @user['name'] %>
Email: <%= @user["email"] %>
Phone: <%= @user["phone"] %>
Age: <%= @user["age"] %> Years
名称:
电邮:
电话:
年龄:岁

@user
是一个散列,您应该通过
键访问
值,如下所示:

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age: <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁

@user
是一个散列,您应该通过
键访问
值,如下所示:

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age: <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁

访问哈希的正确语法是:

@user['name']
@user['email']
# [...]

访问散列的正确语法是:

@user['name']
@user['email']
# [...]

首先,您所谓的“关联数组”是一个散列(请参阅文档),您可以通过使用每个键作为数组索引来访问其元素

换句话说,你应该写:

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age: <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁

首先,您所谓的“关联数组”是一个散列(请参阅文档),您可以使用每个键作为数组索引来访问其元素

换句话说,你应该写:

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age: <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁

首先,您的
@user
不是数组,而是数组

基本上,散列是一个键值对,在您的输入中,
name
是一个键,
Chinmay
是一个值,依此类推

每个命名键都是一个符号,您可以使用它访问散列中的值

因此,
是您从哈希中访问名称的方式

这将完成你的工作

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age:   <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁

首先,您的
@user
不是数组,而是数组

基本上,散列是一个键值对,在您的输入中,
name
是一个键,
Chinmay
是一个值,依此类推

每个命名键都是一个符号,您可以使用它访问散列中的值

因此,
是您从哈希中访问名称的方式

这将完成你的工作

Name : <%= @user['name'] %>
Email: <%= @user['email'] %>
Phone: <%= @user['phone'] %>
Age:   <%= @user['age'] %> Years
名称:
电邮:
电话:
年龄:岁
旁注解决方案:另一种方法是使用brilliant:

控制器中的某个位置:

require 'hashie/mash'
@huser = Hashie::Mash.new @user

Name : <%= @huser.name %>
Email: <%= @huser.email %>
Phone: <%= @huser.phone %>
Age: <%= @huser.age %> Years
需要“hashie/mash”
@huser=Hashie::Mash.new@user
姓名:
电邮:
电话:
年龄:岁
这似乎有些过分,但有时确实有帮助。

旁注解决方案:另一种方法是使用brilliant:

控制器中的某个位置:

require 'hashie/mash'
@huser = Hashie::Mash.new @user

Name : <%= @huser.name %>
Email: <%= @huser.email %>
Phone: <%= @huser.phone %>
Age: <%= @huser.age %> Years
需要“hashie/mash”
@huser=Hashie::Mash.new@user
姓名:
电邮:
电话:
年龄:岁

这似乎有些过分,但有时确实有帮助。

用户是散列,而不是数组

在Ruby中,您可以访问如下哈希属性

@user['property']

Cheers

用户是散列,而不是数组

在Ruby中,您可以访问如下哈希属性

@user['property']
干杯


:

带循环的解决方案


:


带循环的解决方案

谢谢您的回答。你已经解决了这个问题。但我的想法不同。正如您从错误消息中看到的,这是一个哈希而不是数组。@zauzaj是的,这是一个哈希而不是数组。谢谢你的回答。你已经解决了这个问题。但我的想法不同。正如您从错误消息中看到的,这是一个哈希而不是数组。@zauzaj是的,这是一个哈希而不是数组。感谢您无法加载此类文件--哈希/mashie应将gem添加到
Gemfile
bundle
应重新运行。无法加载此类文件--哈希/mashie应将gem添加到
Gemfile
bundle
应重新运行。