У меня есть приложение rails, у которого есть созданные пользователем Devise, которые владеют «элементами». Эти элементы имеют показы просмотра, и я хотел, чтобы эти шоу отображали больше URL-адресов, ориентированных на SEO. Я наблюдал railscast для Friendly_Id камня, реализован, но когда я иду, чтобы создать новый «предмет», он дает мне эту ошибку:Friendly_Id error, unintialized constant
uninitialized constant Item::FriendlyId
При попытке нажать на элементе, он дает мне эту ошибку :
undefined method `key?' for nil:NilClass
Я запустил комплект комплекта. Драгоценный камень не находится в драгоценных камнях.
Вот мой товар модель:
1 class Item < ActiveRecord::Base
2 # include Tire::Model::Search
3 # include Tire::Model::Callbacks
4
5 extend FriendlyId
6 friendly_id :title, use: :slugged
7
8 attr_accessible :content, :user_id, :title, :price, :image
9 validates :content, :length => { :maximum => 140 }
10 belongs_to :user
11 delegate :email, :city, :state, to: :user
12
13 def self.search(search)
14 if search
15 where('title ILIKE ? OR content ILIKE ?', "%#{search}%", "%#{search}%")
16 else
17 scoped
18 end
19 end
20
21 def location
22 [city.to_s.camelcase, state.to_s.upcase].reject(&:blank?).join(", ")
23 end
24
25 has_attached_file :image, styles: {
26 thumb: '100x100>',
27 square: '200x200#',
28 medium: '300x300>',
29 large: '600x600#'
30 }
31 end
вот моя модель пользователя:
1 class User < ActiveRecord::Base
2 # Include default devise modules. Others available are:
3 # :token_authenticatable, :confirmable,
4 # :lockable, :timeoutable and :omniauthable
5 devise :database_authenticatable, :registerable,
6 :recoverable, :rememberable, :trackable, :validatable
7
8 # Setup accessible (or protected) attributes for your model
9 attr_accessible :email, :password, :password_confirmation, :remember_me, :username, :city, :state, :phone
10 has_many :items
11
12 validates_presence_of :username
13 validates_uniqueness_of :username
14
15 def to_param
16 username
17 end
18
19 after_create :send_welcome_email
20
21 private
22
23 def send_welcome_email
24 UserMailer.welcome_email(self).deliver
25 end
26
27 end
Вы перезапустили сервер рельсов после 'bundle install'? –
Попробуйте добавить ': require =>" friendly_id "в файл gem. Например: 'gem" friendly_id ",: require =>" friendly_id "' – fmendez
Хорошая мысль о том, что перезапуск сервера рельсов не рекомендуется. Но я это сделал, поэтому я не думаю, что это проблема. Посмотрев поближе, я обнаружил, что он сказал, что не может найти «пули». Я больше читаю о документации, и мне кажется, что мне нужно иметь столбцы slugs в моей базе данных. Если у меня есть страницы с показами пользователей и товаров, которые я хочу сделать «дружественными», мне нужно добавить пули к обоим элементам и таблицам пользователей, а затем я могу использовать один и тот же код в каждой модели, как указано выше? – momchenr