私はユーザーのショーページを持っています
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にかなり慣れていないので、誰かが私を啓発してくれたらとてもうれしいです:)