1

Rails 3.2 アプリケーションで「Subject」というモデルを作成しました。以下の scaffold コマンドを使用しました。

rails g scaffold Subject subject singular:boolean gender:integer subject_masculine subject_feminine subject_neuter language:references --skip-stylesheets

scaffold はほぼ最後まで実行されますが、ヘルパーに関する不可解なエラーが発生します。

「SubjectsHelper」という名前は、アプリケーションで既に使用されているか、Ruby on Rails によって予約されています。別の方法を選択して、このジェネレータを再度実行してください。

足場を逆にして再構築してみました。最後に、テーブルを作成したところ、問題なく動作しているようです。helpers/subjects_helper.rbファイルはありませんが、この特定のモデルにヘルパーは必要ないと思います。

予約語リストの中に件名が見つかりませんでしたが、それ自体が問題でした。この問題について、別の SO 投稿が提起されました。

railsの予約語一覧 *3*

このエラーが発生するのはなぜですか?無視してもいいですか?

編集

要求された私の Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'thin'
gem 'sinatra'
gem 'pg'
gem 'simple_form'
gem "nested_form"
gem 'thinking-sphinx'
gem 'devise'
gem 'haml-rails'
gem 'ruby_parser'
gem 'html2haml'
gem 'best_in_place'
gem 'carrierwave'
gem 'fog'
gem 'seed_dump'
gem 'bluecloth'
gem 'redcarpet'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'prototype-rails'
  gem 'uglifier', '>= 1.0.3'
  gem 'twitter-bootstrap-rails'
  gem 'therubyracer'
  gem 'less-rails'
  gem 'jquery-datatables-rails'
end

gem 'jquery-rails'
gem 'social_stream'
gem 'rails-footnotes', '>= 3.7.5.rc4', :group => :development

group :development do
  gem 'rails-erd'
  gem 'quiet_assets'
end

gem 'vestal_versions', :git => "git://github.com/futurechimp/vestal_versions.git"
gem 'diffy'
gem 'diffrent'

EDIT2

Philip の提案に従って、Rails コンソールからModule.constantsコマンドを実行しました。出力の中には、2 つの「対象」値がありました。

:SubjectsHelper
:Subject

ヘルパーがないことを何度か確認したので、追加することにしました。次のコードを使用して、 helpers/subjects_helper.rbファイルを作成しました。

module SubjectsHelper
end

Rails が正常に再起動されました。何が起こったのかまだ理解できていません。

4

2 に答える 2

1

おっしゃる通り、SubjectsHelper は既に Social Stream から提供されています。見る:

https://github.com/ging/social_stream/blob/master/base/app/helpers/subjects_helper.rb

Ruby で有効なアクションであるモジュールを再度開いているため、ソリューションは機能しています。

于 2013-02-22T10:04:34.927 に答える
1

見つけた。ルートにサブジェクトがある Social Stream gem を使用しています。

subject_lrdd        /subjects/lrdd/:id(.:format)

エンジンのどこかに埋もれているはずです。

于 2012-12-30T21:08:03.440 に答える