ruby-on-rails - Rails `edit_joke_path` 链接到显示 View ,而不是编辑 View

标签 ruby-on-rails

我的情况应该是相当简单的 link_to 情况:

<% @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

有人能看出我哪里出错了吗?这看起来很简单,但它并没有按照应有的方式工作。

其他信息

这是我的 jokes_controller 中的 edit 操作:

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

最佳答案

按照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 导致了该问题。

因此,在您的编辑操作中删除或注释以下行即可解决您的问题。

redirect_to joke_path

关于ruby-on-rails - Rails `edit_joke_path` 链接到显示 View ,而不是编辑 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734676/

相关文章:

ruby-on-rails - fields_for 嵌套资源的 Rails 4 Controller 操作

ruby-on-rails - 外键和 Mongoid

ruby-on-rails - 合并来自同一模型的两个 has_many 关联的结果

ruby-on-rails - 扩展 ActiveRecord::Base 的正确方法

ruby-on-rails - 您是否可以将find_each查询与include语句一起使用?

ruby-on-rails - 图片模型与Ckeditor::图片模型冲突

ruby-on-rails - 从 github 克隆的项目。 heroku 不工作

ruby-on-rails - Rails 路由在部署中损坏

ruby-on-rails - 验证 ActionCable 连接

ruby-on-rails - Squeel 在 Rails 上执行外连接