【发布时间】:2014-04-06 15:01:47
【问题描述】:
我在理解 redirect_to 语句时遇到了一些问题。 我有一个模型“Book”(带有布尔属性“read”)和一个控制器“books”。现在我创建了第二个控制器“Admins”,必须使用方法:索引和更改。 索引视图只是呈现所有书籍的列表,并带有指向更改方法的链接:
<% @Books.each do |d| %>
<%= d.title %><br>
<% if d.read==true %>
<%= link_to "mark unread", change_path(:id=>d.id)%>
<% else %>
<%= link_to "mark read", change_path(:id=>d.id)%>
<%end %>
现在change方法只是改变了“read”属性:
@book=Book.find(params[:id])
if @book.read==true
@book.update_attributes(:read => false)
else
@book.update_attributes(:read => true)
end
redirect_to action: "index"
问题是:rails 尝试使用 :id 作为参数将我重定向到 show 操作...(可能是因为 change_url 是 /admins/change?id=3) 但我只想被引导回索引视图“/admins”
有办法吗?如果有一个 id 作为参数,似乎 rails 总是尝试重定向到视图操作
非常感谢
PS:routes.rb 包含 resources:admins 和 resources:books
【问题讨论】:
-
你怎么知道
rails tries to redirect me to the show action using the :id as a parameter?你有什么错误吗?如果是,请分享为相同生成的服务器日志。
标签: ruby-on-rails ruby-on-rails-3