1

Rails サイトのこのページと同じフォルダーにあるページへのリンクがあります。

<%= link_to 'Special Access', 'followers/special_access' %>

ただし、このページにアクセスすると、その URL に別のページが表示されます。

<p id="notice"><%= notice %></p>
<div id="sent">
    <p>Your request has been sent</p>
    <%= link_to 'Home', followers_path %>
</div>

HTMLの元のページを削除しようとしましたが、まずそのページが必要で、エラーも発生します。

以下を含むようにコントローラーを編集しました。

def special_access
    format.html  { redirect_to followers/special_access }
    format.json  { render :json => @post }
end

それ以外の

def show

しかし、それでも問題は解決しませんでした。

適切な html を適切なページに表示するにはどうすればよいですか?

4

1 に答える 1

0

のルートを定義しない場合special_access、Rails はspecial_accesパス内の部分が:idショー ページのルートであると想定します (URL は のようになりますfollowers/:id)。

まず、 でroutes.rbを見つけてresources :followers、次のものに置き換えます。

resources :followers do
  collection do
    get :special_access
  end
end

そして今、常にレールパスヘルパーを使用するのが最善であるため、リンクは次のようになります

<% link_to 'Special Access', special_access_followers_path %>

ここでは、特別なアクセスがフォロワーのコレクションにあると想定していましたが、特定のフォロワーにアクセスする必要がある場合 (私にはより論理的に思えますが、もちろんわかりません)、次のように書く必要があります。

resources :followers do
  member do
    get :special_access
  end
end

そして、あなたのリンクは

<% link_to 'Special Access', special_access_followers_path(@follower) %>

コントローラーアクションで何をしたいのかよくわかりません.htmlページをレンダリングしたいだけだと思います(同じURLへのリダイレクトはばかげているように見え、構文も間違っているため).

お役に立てれば。

于 2012-12-23T21:30:48.767 に答える