我在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?
答案 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看起来很傻,你的语法也错了)。
希望这有帮助。