私はRailsに慣れ親しんでおり、足場なしでそれをしようとしています。本当にそれを学ぶでしょう。私はrailstutorial.orgを見ましたが、私のプロジェクトが行っていたことから分かれ、別のレールプロジェクトやコピー編集されたコードで足場を作りました。Rails 3 - コントローラのメソッドnewのNoMethodError
環境: Ubuntuの明晰、 ルビー1.9.3p125、 レール3.2.1
NoMethodError in DreamController#new
undefined method `new' for Dream:Module
Rails.root: /vagrant/dream
Application Trace | Framework Trace | Full Trace
app/controllers/dream_controller.rb:5:in `new'
はここに私のルートをですアプリケーションのルートに行くとき、私はこのエラーを取得しています。 rb
Dream::Application.routes.draw do
resources :dreams do
resources :interpretations
end
root :to => 'dream#new'
end
ここは私のコントローラです:
class DreamController < ApplicationController
def new
@dream = Dream.new
respond_to do |format|
format.html # new.html.erb
end
end
def create
@dream = Dream.new(params[:dream])
respond_to do |format|
if @dream.save
format.html { redirect_to @dream, notice: 'Dream was successfully created.' }
else
format.html { render action: "new" }
end
end
end
end
アプリ/ビュー/夢/ new.html.erbだけです:
<%= render 'form' %>
アプリ/ビュー/夢/ _form.html.erb:
<%= form_for(@dream) do |f| %>
<% if @dream.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@dream.errors.count, "error") %> prohibited this dream from being saved:</h2>
<ul>
<% @dream.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :text %><br />
<%= f.text_area :text %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
はここに私のモデルです( 2つの別々のファイル)に:
class Dream < ActiveRecord::Base
validates :text, :presence => true
has_many :interpretations
end
class Interpretation < ActiveRecord::Base
validates :text, :presence => true
belongs_to :dream
end
私は今、数時間のためにGoogleで検索しましたし、これを理解することはできません。私は助けていただければ幸いです!
私のモデルに関連していると思います。私は '1.9.3p125レールコンソールでこのエラーを取得:001> @dream = Dream.new NoMethodError:夢のための '新しい' 未定義のメソッド:module'の返信用 – nnotreall