0

いくつかのパーシャルをレンダリングするページがあります。ローカルMacではすべて問題ありませんが、herokuにプッシュしてページにアクセスすると、パーシャルの順序が異なります。

以下のコードでパーシャルをレンダリングし、ファイルの命名規則で順序を制御すると思いました。

html.erb:

<% Dir["app/views/partials/ws/*.html.erb"].each do |ws| %>
<%= render 'partials/ws/' + File.basename(ws,'.html.erb').slice(1..-1) %>
<% end %>

パーシャルは命名規則を使用します:

_ws_01-why.html.erb
_ws_02-what.html.erb
_ws_03-who.html.erb
_ws_04-where.html.erb
_ws_05-when1.html.erb
_ws_06-how.html.erb

Herokuは次の順序でレンダリングします。

_ws_01-why.html.erb
_ws_02-what.html.erb
_ws_06-how.html.erb
_ws_04-where.html.erb
_ws_05-when1.html.erb
_ws_03-who.html.erb

herokuが命名規則/ルビーループの順序をどのように解釈しているかわかりません...順序を制御するためにループに追加するより良い命名対流またはロジックがあるかどうか疑問に思いますか?

ありがとう!

4

1 に答える 1

1

これを変える:

<% Dir["app/views/partials/ws/*.html.erb"].each do |ws| %>

これに:

<% Dir["app/views/partials/ws/*.html.erb"].sort.each do |ws| %>

なんらかの方法で強制しない限り、列挙子がすべての場合に同じ順序を選択することを確信することはできません。

于 2012-10-31T03:45:37.927 に答える