3

私はユーザーのショーページを持っています

1.) ルート

get 'users/:id' => 'user#show', as: :user

2.) user_controller.rb

class UserController < ApplicationController

before_filter :authenticate_user!, only: :show

def show
    @user = User.find_by_name(params[:id]) # for name instead of id
@listings = @user.listings
end
end

「 current_user 」経由でリンクできます。

Shop Controller を作成したかったので、同じ手順に従いました。Shops Controller を生成し、ルートとコントローラーを次のように変更しました。

1.) ルート

get 'users/:id' => 'user#show', as: :user
get 'shop/:id' => 'shop#show', as: :shop

2.) shop_controller.rb

class ShopController < ApplicationController

before_filter :authenticate_user!, only: :show

def show
    @user = User.find_by_name(params[:id]) # for name instead of id
    @listings = @user.listings
end

end

これは、ユーザーのページ (localhost:3000/users/test) でコントローラーへのリンクをクリックした場合にのみ機能します。次に、(localhost:3000/shop/test) に切り替わります。

他の場所でリンクをクリックしようとすると、

ここに画像の説明を入力

リンクは→

<li><%= link_to "My Shop", :controller => "shop", :action => "show" %></li>

私はRailsにかなり慣れていないので、誰かが私を啓発してくれたらとてもうれしいです:)

4

1 に答える 1