Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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 如何显示控制器';.html.erb页面上的s变量(在循环中)?RubyonRails_Ruby On Rails_Ruby_Loops_Hash_Render - Fatal编程技术网

Ruby on rails 如何显示控制器';.html.erb页面上的s变量(在循环中)?RubyonRails

Ruby on rails 如何显示控制器';.html.erb页面上的s变量(在循环中)?RubyonRails,ruby-on-rails,ruby,loops,hash,render,Ruby On Rails,Ruby,Loops,Hash,Render,我的控制器中列出了以下代码: struc = {'en' => 'english', 'es' => 'espaniol', 'de' => 'germany', 'fr' => 'french', 'it' => 'italy'} struc.each_pair do |key, value| @key=key @value=value end 在application.html.erb上,我有以下内容 <select name="Language

我的控制器中列出了以下代码:

struc = {'en' => 'english', 'es' => 'espaniol', 'de' => 'germany', 'fr' => 'french', 'it' => 'italy'}
struc.each_pair do |key, value|
  @key=key
  @value=value
end
在application.html.erb上,我有以下内容

<select name="Language" onchange="location=this.options[this.selectedIndex].value;">
    <option value="/<% @key %>/<%= @rem %>"><%= @value %></option>
</select>

现在,如何使“@key”和“@value”的值递归显示在(application.html.erb)上

另外,我如何更改其样式,即使值看起来更小,被很好地隐藏起来???


提前感谢

您需要将struc转换为实例变量,使其可用于视图-即@struc。那么在你看来呢

<select name="Language" onchange="location=this.options[this.selectedIndex].value;">

<% @struc.each_pair do |key, value| %>
        <option value="/<%= key %>/<%= @rem %>"><%= value %></option>
<% end %>

</select>

为什么不做类似的事情呢

in controller

@langs = { :en => 'english', 
           :es => 'espaniol', 
           :de => 'germany', 
           :fr => 'french', 
           :it => 'italy' }

in view

<select name="language" onChange="location = this.options[this.selectedIndex].value;">
  <% @langs.each_pair do |short, long| %>
    <option value="<%= short %>"><%= long %></option>
  <% end %>
</select>
控制器中的

@langs={:en=>'english',
:es=>“西班牙语”,
:de=>“德国”,
:fr=>“法语”,
:it=>“意大利”}
鉴于
genius谢谢:)太棒了,实现得非常好!