Rails`edit_joke_path`链接到Show View,而不是Edit视图

时间:2016-08-03 04:55:03

标签: ruby-on-rails

我应该是一个相当简单的<% @jokes.each do |joke| %> ... <%= link_to edit_joke_path(joke) do %> <span style="color: blue" class="glyphicon glyphicon-pencil" aria-hidden="true"></span><span style="color: blue">Edit Joke</span> <% end %> ... <% end %> 情况:

jokes#show

但是,当我点击此链接时,我会转到jokes#edit页面,而不是 jokes GET /jokes(.:format) jokes#index POST /jokes(.:format) jokes#create new_joke GET /jokes/new(.:format) jokes#new edit_joke GET /jokes/:id/edit(.:format) jokes#edit joke GET /jokes/:id(.:format) jokes#show PATCH /jokes/:id(.:format) jokes#update PUT /jokes/:id(.:format) jokes#update DELETE /jokes/:id(.:format) jokes#destroy 页面。这是我的路线:

edit

任何人都可以看到我出错的地方吗?这看起来很简单,但它没有按照预期的方式工作。

附加信息

这是我jokes_controller的{​​{1}}行动:

 def edit
    @joke = Joke.find(params[:id])
    @joke.user = current_user
    @joke.save
    redirect_to joke_path
  end

3 个答案:

答案 0 :(得分:1)

edit_joke_path(joke)

开玩笑#dog但在编辑功能结束时你添加了 redirect_to 。从编辑功能中删除redirect_to。

  

redirect_to:将浏览器重定向到指定目标

答案 1 :(得分:1)

根据jokes_controller.rb

中的以下代码
 def edit
    @joke = Joke.find(params[:id])
    @joke.user = current_user
    @joke.save
    redirect_to joke_path
  end

redirect_to joke_path导致问题。

因此,请在edit操作中删除或评论以下一行,以解决您的问题。

redirect_to joke_path

答案 2 :(得分:0)

从您的操作中删除redirect_to joke_path。那是带你去节目页面。