0

ユーザーが私のサイトにサインアップすると、次のリンクを含む「/welcome」にリダイレクトされます。

<%= link_to "Create Band Page", bands_user_path %>
<%= link_to "Complete Profile", edit_user_path(current_user) %>

[完全なプロファイル]リンクが表示され、正常に機能します。ただし、ページには[バンドページの作成]リンクが表示されないため、次のエラーが発生します。

No route matches {:action=>"bands", :controller=>"users"}

私はユーザーのページにそのリンクを持っています、そしてそれはうまくいきます。

私のusers_controllerにはこのビットが含まれています:

def bands
  @band = current_user.bands.build
  @bands = current_user.bands.all
  @user = current_user
end

そして、関連するroutes.rbの部分は次のようになります。

resources :users do
  member do
    get :following, :followers, :bands
  end
end
match '/welcome', to: 'static_pages#welcome'

前に述べたように、ユーザーのショーページのリンクを使用すると、正常に機能し、レーキルートには適切なリンクが含まれます。

bands_user GET    /users/:id/bands(.:format)      users#bands

ここで何が欠けていますか?

4

1 に答える 1

0

バンドを表示したいユーザーを渡していない。

ルートが一致し/users/:id/bands(.:format)ます。形式はオプションのセグメントです(括弧の意味です)が、:id必須です。有効なuser_idまたはuserオブジェクトを渡して、user_idを活用する必要があります。

試してみてください<%= link_to "Create Band Page", bands_user_path(current_user) %>。うまくいくはずです。

于 2012-12-13T00:11:18.923 に答える