0

私のアプリは localhost で正常に動作しますが、heroku にデプロイして新しい注文を作成しようとすると、次のエラーが表示されます。

2013-03-20T21:26:02+00:00 app[web.1]: Started GET "/orders/new" for 189.44.29.3 at 2013-03-20 21:26:02 +0000
2013-03-20T21:26:02+00:00 app[web.1]: Processing by OrdersController#new as HTML
2013-03-20T21:26:02+00:00 app[web.1]:   Rendered orders/new.html.erb within layouts/application (49.4ms)
2013-03-20T21:26:02+00:00 app[web.1]: Completed 500 Internal Server Error in 62ms
2013-03-20T21:26:02+00:00 app[web.1]: 
2013-03-20T21:26:02+00:00 app[web.1]: ActionView::Template::Error (/app/app/views/orders/new.html.erb:31: unknown regexp options - tabl
2013-03-20T21:26:02+00:00 app[web.1]: /app/app/views/orders/new.html.erb:33: unterminated string meets end of file
2013-03-20T21:26:02+00:00 app[web.1]: /app/app/views/orders/new.html.erb:33: syntax error, unexpected $end, expecting keyword_end):
2013-03-20T21:26:02+00:00 app[web.1]:     28:       <td><%= order.select :drop,options_for_select({"Nao",false,"Sim",true}) %></td>
2013-03-20T21:26:02+00:00 app[web.1]:     29:   </tr>
2013-03-20T21:26:02+00:00 app[web.1]:     30:   </tbody>
2013-03-20T21:26:02+00:00 app[web.1]:     31: </table>
2013-03-20T21:26:02+00:00 app[web.1]:     32:   <%= order.submit "Criar nova Compra !"%>
2013-03-20T21:26:02+00:00 app[web.1]:     33: <% end %>
2013-03-20T21:26:02+00:00 app[web.1]:   app/controllers/orders_controller.rb:16:in `new'

私の見解では、このコードがあります:

<%= form_for @order do |order| %>
<table>
    <tbody>
    <tr>
        <td>Fornecedor</td>
        <td>Produto</td>
        <td>Quantidade</td>
        <td>Nr Compra</td>
        <td>Pagamento</td>
        <td>Valor</td>
        <td>Endereço</td>
        <td>Dropship</td>
    </tr>
    <tr>
        <td><%= order.select :seller,Place.all.map { |a| [a.place,a.place] }%></td>
        <td><%= order.select :product_id,Product.all.map { |a| [a.name,a.id] } %></td>
        <td><%= order.text_field :quantity,:size => 4 %></td>
        <td><%= order.text_field :order_number,:size => 2%></td>
        <td><%= order.select :payment,Place.all.map { |a| [a.place,a.place] }%></td>
        <td><%= order.text_field :value,:size => 5 %></td>
        <td><%= order.select :adress_id,Adress.all.map { |a| [a.name,a.id] }%></td>
        <td><%= order.select :drop,options_for_select({"Nao",false,"Sim",true}) %></td>
    </tr>
    </tbody>
</table>
    <%= order.submit "Criar nova Compra !"%>
<% end %>

誰かが私を助けてくれたら、ありがとう、新しい注文を作成しようとするとこのエラーが発生します、ありがとう

options_for_select と whitout を試してみましたが、すべての場合、heroku でこのエラーが発生しました。

4

1 に答える 1

1

ビューに構文エラーがあります。私の最善の推測は、あなたの場合、次の行です

<td><%= order.select :drop,options_for_select({"Nao",false,"Sim",true}) %></td>
</tr>

次のように書き換えることができます。

<td><%= order.select :drop,options_for_select({"Nao" => false, "Sim" => true}) %></td>
</tr>

この式{"Nao",false,"Sim",true}は、デフォルトの Ruby 構文では意味がありません。

これに変更する{"Nao" => false,"Sim" => true}と、ハッシュが生成されます。

これに変更する["Nao",false,"Sim",true]と、配列が生成されます。

ドキュメントによると、Rails メソッドoptions_for_selectは、ハッシュまたは配列 (または任意の列挙可能な型) のいずれかを受け入れます。

于 2013-03-21T04:08:46.610 に答える