Ruby on rails 如何在RubyonRails中获取数组值
我正在Rails中研究本地化概念,需要在HTML页面中获得一些本地化值。所以我生成了如下格式的控制器数组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
#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']]进行访问,无需指定引号无法访问值感谢您指出错误,我想您可以使用“字符串”或:符号。