【发布时间】:2016-04-16 20:48:13
【问题描述】:
当我在数据库中创建一个新的 category_item_key 时,slug 不会被添加到 slug 列中。
这是我的代码
迁移文件
class AddSlugToCategoryItemKeys < ActiveRecord::Migration
def change
add_column :category_item_keys, :slug, :string
add_index :category_item_keys, :slug, unique: true
end
end
category_item_key 控制器
def new
@guide = Guide.friendly.find(params[:guide_id])
@category = Category.friendly.find(params[:category_id])
@key = Category.friendly.find(params[:category_id]).category_item_keys.new
end
def create
@guide = Guide.friendly.find(params[:guide_id])
@category = Category.friendly.find(params[:category_id])
@key = Category.friendly.find(params[:category_id]).category_item_keys.new(key_params)
if @key.save
flash[:info] = "Key added succesfully!"
redirect_to @guide
else
render 'new'
end
end
private
def key_params
params.require(:category_item_key).permit(:name, :slug)
end
new.html.erb
<%= form_for([@category, @key], url: category_item_keys_create_path) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name, "Key name" %>
<%= f.text_field :name %>
<%= f.submit "Next" %>
<% end %>
在创建新指南或类别友好 ID 时,添加 slug 就可以正常工作。但是 category_item_key 出了点问题。
也许我错过了什么。但是我找不到问题。
【问题讨论】:
-
请使用
category_item_key.rb型号代码更新您的问题。 -
我忘记在我的模型中添加
extend FriendlyId friendly_id :name, use: :slugged!
标签: ruby-on-rails ruby-on-rails-4 rubygems friendly-id