FriendlyID历史记录不适用于Rails中更新的模型URL

卡尔·爱德华兹

在FriendlyID的Wikirailscast之后,如果用户模型的名称已更改,我尝试重写并重定向URL。不幸的是,什么都没有发生。我已经进行了适当的迁移:

rails generate friendly_id
rails generate migration add_slug_to_artists slug:string:uniq
rake db:migrate

并按照指示应用了此代码,但无济于事。最初创建模型实例后,URL保持不变。

艺术家模型

extend FriendlyId
friendly_id :name, use: [:slugged, :history]

用户控制器

class ArtistssController < ApplicationController
  before_action :set_artist, only: [:show, :edit, :update, :destroy]

  def show
    if request.path != user_path(@artist)
      redirect_to @artist, :status => :moved_permanently
    end
  end

  def update
    if @artist.update_attributes(artist_params)
      flash[:notice] = 'Artist successfully updated'
      redirect_to @artist
    else
      render 'edit'
  end

  private
  # Use callbacks to share common setup or constraints between actions.
    def set_artist
      @artist = Artist.friendly.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def artist_params
      params.require(:artist).permit(:name)
    end
end
卡尔·爱德华兹

虽然在他们的文档中已经说明过,但从未真正解释过用于在控制器中更改FriendlyID 5的URL的代码。我最终不得不添加@artist.slug = nil以使其生效:

def update
  @artist.slug = nil
  if @artist.update_attributes(artist_params)
    flash[:notice] = 'Artist successfully updated'
    redirect_to @artist
  else
    render 'edit'
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

历史记录的向上箭头不适用于SSH

来自分类Dev

文本输入字段不适用于chrome字段历史记录

来自分类Dev

Ubuntu-命令历史记录不适用于新创建的用户

来自分类Dev

如何添加顶部栏菜单;文件,视图,历史记录,工具...适用于18.04中的应用程序?

来自分类Dev

如何使命令行历史记录适用于所有终端

来自分类Dev

Chrome-更新历史记录中的域

来自分类Dev

从URL和历史记录中删除锚点

来自分类Dev

如何查看Chrome历史记录中的完整URL?

来自分类Dev

将更新应用于历史记录中的git补丁时正确的工作流程是什么

来自分类Dev

ipdb会话中的历史记录

来自分类Dev

zsh中的命令历史记录

来自分类Dev

zsh中的命令历史记录

来自分类Dev

zsh中的命令历史记录

来自分类Dev

脚本中的Bash历史记录:`!#:*`

来自分类Dev

更新的记录插入到历史记录表中而不是旧记录

来自分类Dev

Rails 4:模型验证不适用于创建

来自分类Dev

显示历史记录表中的更改历史记录

来自分类Dev

如何使用bash历史记录使用历史记录中的参数运行命令?

来自分类Dev

在Firefox的历史记录面板中增加历史记录项的数量

来自分类Dev

显示历史记录表中的更改历史记录

来自分类Dev

在MS Access中更新记录不适用于SQL语法

来自分类Dev

更新MS Access中的记录不适用于SQL语法

来自分类Dev

Ruby on Rails - 总和计算不适用于模型中的关联

来自分类Dev

用户历史记录操作-在Django模型中存储的正确方法

来自分类Dev

在 Django 模型字段中存储位置历史记录

来自分类Dev

在回调ModelCheckpoint上保存模型的历史记录

来自分类Dev

更新iframe,历史记录和URL。然后使其与后退按钮一起使用

来自分类Dev

更改视图和控制器,而无需更新url或历史记录

来自分类Dev

根据多组复选框更新URL窗口历史记录

Related 相关文章

  1. 1

    历史记录的向上箭头不适用于SSH

  2. 2

    文本输入字段不适用于chrome字段历史记录

  3. 3

    Ubuntu-命令历史记录不适用于新创建的用户

  4. 4

    如何添加顶部栏菜单;文件,视图,历史记录,工具...适用于18.04中的应用程序?

  5. 5

    如何使命令行历史记录适用于所有终端

  6. 6

    Chrome-更新历史记录中的域

  7. 7

    从URL和历史记录中删除锚点

  8. 8

    如何查看Chrome历史记录中的完整URL?

  9. 9

    将更新应用于历史记录中的git补丁时正确的工作流程是什么

  10. 10

    ipdb会话中的历史记录

  11. 11

    zsh中的命令历史记录

  12. 12

    zsh中的命令历史记录

  13. 13

    zsh中的命令历史记录

  14. 14

    脚本中的Bash历史记录:`!#:*`

  15. 15

    更新的记录插入到历史记录表中而不是旧记录

  16. 16

    Rails 4:模型验证不适用于创建

  17. 17

    显示历史记录表中的更改历史记录

  18. 18

    如何使用bash历史记录使用历史记录中的参数运行命令?

  19. 19

    在Firefox的历史记录面板中增加历史记录项的数量

  20. 20

    显示历史记录表中的更改历史记录

  21. 21

    在MS Access中更新记录不适用于SQL语法

  22. 22

    更新MS Access中的记录不适用于SQL语法

  23. 23

    Ruby on Rails - 总和计算不适用于模型中的关联

  24. 24

    用户历史记录操作-在Django模型中存储的正确方法

  25. 25

    在 Django 模型字段中存储位置历史记录

  26. 26

    在回调ModelCheckpoint上保存模型的历史记录

  27. 27

    更新iframe,历史记录和URL。然后使其与后退按钮一起使用

  28. 28

    更改视图和控制器,而无需更新url或历史记录

  29. 29

    根据多组复选框更新URL窗口历史记录

热门标签

归档