小编Sve*_*ven的帖子

Ruby on Rails-redirect_to

我在理解redirect_to语句时遇到了一些麻烦。我有一个模型“ Book”(具有布尔属性“ read”)和一个控制器“ books”。现在,我创建了第二个控制器“ Admins”,它必须具有以下方法:索引和更改。索引视图仅显示所有书籍的列表,并带有指向change方法的链接:

<% @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 %>
Run Code Online (Sandbox Code Playgroud)

现在,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"
Run Code Online (Sandbox Code Playgroud)

问题是:rails尝试使用:id作为参数将我重定向到show动作...(也许是因为change_url是/ admins / change?id = 3),但是我只想直接返回索引视图“ /管理员”

有办法吗?如果有一个id作为参数,似乎rails总是尝试重定向到view操作

非常感谢

PS:routes.rb包含资源:管理员和资源:书籍

ruby-on-rails ruby-on-rails-3

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

ruby-on-rails ×1

ruby-on-rails-3 ×1