-1

私のコントローラーには、以下のコードがあります。

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)に再帰的に表示するにはどうすればよいですか?

また、どうすればそのスタイルを変更できますか?つまり、値を小さく見せて、うまく押し込めますか?

前もって感謝します

4

2 に答える 2

3

なぜ次のようなものではないのですか

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>
于 2012-11-13T16:57:19.520 に答える
2

struc をインスタンス変数 (つまり @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>
于 2012-11-13T16:56:53.003 に答える