Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中获取数组值_Ruby On Rails_Arrays_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在RubyonRails中获取数组值

Ruby on rails 如何在RubyonRails中获取数组值,ruby-on-rails,arrays,ruby-on-rails-3,Ruby On Rails,Arrays,Ruby On Rails 3,我正在Rails中研究本地化概念,需要在HTML页面中获得一些本地化值。所以我生成了如下格式的控制器数组 #array use to store all localization values @alertMessages = [] #array values... {:index=>"wakeUp", :value=>"Wake Up"} {:index=>"tokenExpired", :value=>"Token Expired"} {:index=>"t

我正在Rails中研究本地化概念,需要在HTML页面中获得一些本地化值。所以我生成了如下格式的控制器数组

#array use to store all localization values 
@alertMessages = []

#array values...
{:index=>"wakeUp", :value=>"Wake Up"}
{:index=>"tokenExpired", :value=>"Token Expired"}
{:index=>"timeZone", :value=>"Time Zone"}
{:index=>"updating", :value=>"Updating"}
{:index=>"loadMore", :value=>"Load More"} 
#....more
HTML页面中,我希望获得如下或其他类型的本地化值

<%= @alertMessages['wakeUp'] %>

因此,它将显示值为“唤醒”

但是它不起作用。。
任何人都可以…

阵列在这里似乎并不合适,但如果您仍想使用它,请按以下方式进行操作:

array.find{|el| el[:index] == "wakeUp"}[:value]

不过,您应该对其进行抽象。

对其()使用哈希更容易,它类似于带有命名索引(或键)的数组

这样做:

@alert_messages = {
   wake_up: "Wake Up",
   token_expired: "Token Expired",
   .
   .
   .
}
您还可以通过以下方式扩展哈希:

@alertMessages[:loadMore] = "Load More"
通过以下方式访问它:

@alert_messages[:loadMore]
此外,您还应该检查i18n以进行国际化,这是一种更健壮、更灵活的方式:

尝试以下方法:

<% 
    @alertMessages.each_with_index do |alertMessage, index|
    alertMessage[:value] if index == "wakeUp"
    end 
%>

谢谢。

#散列以存储值
# Hash to store values
@alertMessages = {}

#hashvalues...
alertMessages[:wakeUp] = "Wake Up"
alertMessages[:tokenExpired] = "Token Expired"
alertMessages[:timeZone] = "Time Zone"
alertMessages[:updating] = "Updating"
alertMessages[:loadMore] = "Load More"

#....more
In HTML pages i want to get localization values like below or some other type,

<%= @alertMessages[:wakeUp] %>
so, it will display value is 'Wake Up',
@alertMessages={} #哈希值。。。 alertMessages[:wakeUp]=“唤醒” alertMessages[:tokenExpired]=“Token Expired” alertMessages[:时区]=“时区” alertMessages[:更新]=“更新” alertMessages[:loadMore]=“加载更多” #……更多 在HTML页面中,我希望获得如下或其他类型的本地化值, 因此,它将显示值为“唤醒”,

尽量使用“始终”符号,因为

为什么我们需要运行整个数组…?是的,你是对的。然后@apreading的答案是最好的:
array.find{el | el[:index]==“wakeUp”}[:value]
,您可以使用to_s将符号转换为字符串,使用to_符号则相反。在尝试您的方法时,我得到了这个错误命名错误(未定义的方法'where?因为它在我的计算机中工作…可能在代码的其他部分仍然使用alertMessages作为数组?可以使用@alertMessages['loadMore']]进行访问,无需指定引号无法访问值感谢您指出错误,我想您可以使用“字符串”或:符号。