我在理解redirect_to语句时遇到了一些麻烦。 我有一个模型“书”(与布尔属性“读”)和一个控制器“书”。现在我创建了第二个控制器“管理员”,但不得不使用索引和更改。 索引视图只是呈现一个列表关闭所有书籍的链接,以改变方法:Ruby on Rails - redirect_to
<% @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 %>
现在改变方法只是改变了“读”属性:
@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"
的问题是:铁轨尝试使用:id作为参数将我重定向到show动作...(可能是因为change_url是/ admins/change?id = 3) 但我只是想要回到索引视图“/ admins”
有没有办法?好像轨总是试图重定向到视图操作,如果有一个ID作为参数
非常感谢
PS:在routes.rb中包含的资源:管理员和资源:书籍
你怎么知道'rails试图使用:id作为参数将我重定向到show动作?你有什么错误吗?如果是,请分享为此生成的服务器日志。 –