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

现在你最好总是使用 rails 路径助手,这样你的链接就会变成

<% 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 回答