1

Deviseをインストールしたばかりですが、Deviseのスタイルを改善したいと思います。Deviseユーザープロファイルを編集するためにapplication.html.rbリンクを追加しましたが、このページにアクセスしてから、たとえばインデックスページに戻ると、ルート一致エラーがありません。

HTMLは、home / indexの次のリンクを生成します:http:// localhost:3000 / Assets?controller = devise%2Fhome

ただし、実際には次のようにする必要があります:http:// localhost:3000 / home / index

Deviseのユーザーページにアクセスした後、問題が発生しました。

私のナビゲーション:

<ul>
  <li>
  <h2>Izvēlne</h2>
    <ul>
      <li><a class="menu"><%= link_to "Jaunumi" ,:controller=>"home", :action => "index" %></a></li>
      <li><a class="menu"><%= link_to "Par skolu" ,:controller=>"home", :action => "par_skolu" %></a></li>
      <li><a class="menu"><%= link_to "Galerijas" ,:controller=>"home", :action => "galerijas" %></a></li>
      <li><a class="menu"><%= link_to "Skolotāji" ,:controller=>"home", :action => "personals" %></a></li>
      <li><a class="menu"><%= link_to "Kontaktinformācija" ,:controller=>"home", :action => "kontakti" %></a></li>
      <li><a class="menu"><%= link_to "Personāla pieeja" ,:controller=>"home", :action => "pers_pieeja" %></a></li>
    </ul>
  </li>
  <li>
  <h2>Administrācija</h2>
    <ul>
      <li><%= link_to "Lietotāju rediģēšana", edit_user_registration_path %></li>
      <li><%= link_to "Rakstu rediģēšana" ,:controller=>"posts", :action => "index" %></li>
      <li><%= link_to "Galeriju rediģēšana" ,:controller=>"admin", :action => "galeriju_red" %></li>
    </ul>
  </li>
</ul>

ルート.rb:

devise_for :users

get "admin/galeriju_red"

resources :posts

get "admin/rakstu_red"

get "home/par_skolu"

get "home/personals"

get "home/kontakti"

get "home/pers_pieeja"

get "home/galerijas"

get "home/index"
4

1 に答える 1

2

私が考えることができる唯一のアイデアは、ルートを次の場所から変更することです。

get "home/index"

match "/home/index" => "home#index", :via => [:get]

これらは同等ですが、一致するとパスヘルパーが使用可能になるため、メニュービューのリンクは次のようになります。

<%= link_to "Home" main_app.home_index_path %>

Main_appは組み込みのRailsヘルパーであり、Engine内のRailsルートへのアクセスを提供します。

単に/homeと一致した場合、パスヘルパーはhome_pathと呼ばれます。

これで問題が解決することを願っています。

参照:Railsでのルーティング

于 2012-05-06T11:42:42.793 に答える