0

ルビー 1.9.3-p194

レール 3.0.3

今日、libcrypt エラーが発生しました。数時間のトラブルシューティングの後、rvm、ruby、gems をアンインストールしました。すべてを再インストールしましたが、アプリケーションでエラーがスローされます。コードに変更を加えていませんが、再インストールする前は問題なく機能していました。

ActionView::Template::Error (/home/username/apps/vits/app/views/layouts/application.html.erb:19: syntax error, unexpected ',', expecting ')'
if (current_user.admin == true, "Admin Menu", adminmenu_path...
/home/username/apps/vits/app/views/layouts/application.html.erb:19: syntax error, unexpected ',', expecting ')'
...er.admin == true, "Admin Menu", adminmenu_path) );@output_bu....
/home/username/apps/vits/app/views/layouts/application.html.erb:22: syntax error, unexpected keyword_do_block, expecting keyword_end
');@output_buffer.append_if_string=  flash.each do |name, msg|
/home/username/apps/vits/app/views/layouts/application.html.erb:22: syntax error, unexpected '|', expecting '='
');@output_buffer.append_if_string=  flash.each do |name, msg|
/home/username/apps/vits/app/views/layouts/application.html.erb:44: syntax error, unexpected keyword_ensure, expecting $end):
16:     <div id="header">
17:             <div class="wrap clear">                        
18:                 <% if current_user %>  
19:                     <%= link_to "Logout", logout_path %>  |  <%= link_to "Main Menu", usermenu_path %>  |  <%= link_to_if (current_user.admin == true, "Admin Menu", adminmenu_path) %>
20:                 <% end %>
21:             </div>
22: <%- flash.each do |name, msg| -%>
app/controllers/user_sessions_controller.rb:29:in `new'

何か案は?これは私にとって悪い RoR 日です。
前もって感謝します。-ケイティ

application.html.erb 全体を追加するように編集:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title><%= h(yield(:title) || "Vendor Invoice Tracking System (VITS)") %></title>
    <link rel="stylesheet" href="stylesheets/scaffold.css" type="text/css" media="all" charset="utf-8" />
    <%= stylesheet_link_tag 'scaffold' %>
    <%= javascript_include_tag :defaults %>
    <%= javascript_include_tag "tablesort.js" %>
  </head>

  <body>
    <div id="siteholder">

    <div id="header">
            <div class="wrap clear">                        
                <% if current_user %>  
                    <%= link_to "Logout", logout_path %>  |  <%= link_to "Main Menu", usermenu_path %>  |  <%= link_to_if ((current_user.admin == true, "Admin Menu", adminmenu_path)) %>
                <% end %>
            </div>
<%- flash.each do |name, msg| -%>
<%= content_tag :div, msg, :id => "flash_#{name}" %></p>
<div class="clear"></div>
<%- end -%> 

        <% if current_user %>       
            <div id="content1">             
                <%= yield %>
            </div>

        <% else %>

            <div id="content">
                <div id="content1">
                </div>
                <%= yield %>
            </div>
        <% end %>

    </div>
  </body>
</html>'
4

1 に答える 1

0

問題はこの行だと思います:

<%= link_to_if (current_user.admin == true, "Admin Menu", adminmenu_path) %>

は必要ありません== true

<%= link_to_if (current_user.admin, "Admin Menu", adminmenu_path) %>

良くなるよ。何らかの理由で等しいかどうかを確認する必要がある場合は、追加の括弧のペアが必要になります。たとえば、次のようになります。

<%= link_to_if ((current_user.role == "admin"), "Admin Menu", adminmenu_path) %>
于 2012-10-23T20:23:27.773 に答える