Rails页面有错误的HTML

时间:2012-12-23 16:13:18

标签: html ruby-on-rails routes scaffolding function

我在rails网站上有与此页面相同的文件夹中的页面链接:

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

但是,当我转到此页面时,它会在该网址上显示不同的页面。

<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?

1 个答案:

答案 0 :(得分:0)

如果您没有为special_access定义路由,则rails将假设路径中的special_acces部分是显示页面路由的:id(作为网址)看起来像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看起来很傻,你的语法也错了)。

希望这有帮助。