2014-03-03 18 views
0

누구든지 해결하도록 도와 줄 수 있습니까? 미리 감사드립니다. app/views/discussions/new.html.erbNoMethodError in Discussions # new

Rails.root : C:/Users/punitha/aggregator

Application Trace | Framework Trace | Full Trace 
app/views/discussions/_form.html.erb:1:in `_app_views_discussions__form_html_erb___1058370717_35436840' 
app/views/discussions/new.html.erb:3:in `_app_views_discussions_new_html_erb__298093787_35389404' 

그리고 파일 _form.html.erb이

<%= form_for @discussions do |f| %> 
<% if @discussions.errors.any? %> 
<div id="error_explanation"> 
<h2><%= pluralize(@discussions.errors.count, "error") %> prohibited 
    this discussion from being saved:</h2> 
<ul> 
    <% @discussions.errors.full_messages.each do |msg| %> 
    <li><%= msg %></li> 
    <% end %> 
    </ul> 
</div> 
<% end %> 
<p> 
<%= f.label :source_url %><br> 
<%= f.text_field :source_url %> 
    </p> 

<p> 
<%= f.label :discussion_id %><br> 
<%= f.text_area :discussion_id %> 
</p> 

<p> 
<%= f.label :discussion_msg %><br> 
<%= f.text_area :discussion_msg %> 
</p> 

<p> 
<%= f.label :discussion_type %><br> 
<%= f.text_field :discussion_type %> 
</p> 

<p> 
<%= f.label :discussion_link %><br> 
<%= f.text_area :discussion_link %> 
</p> 
<p> 
<%= f.label :discussion_thumb %><br> 
<%= f.text_area :discussion_thumb %> 
</p> 
<p> 
<%= f.label :discussion_permalink %><br> 
<%= f.text_area :discussion_permalink %> 
</p> 

<p> 
<%= f.label :discussion_likecount %><br> 
<%= f.number_field :discussion_likecount%> 
</p> 

<p> 
<%= f.label :comment %><br> 
<%= f.text_area :comment%> 
</p> 
<p> 
<%= f.label :source_id %><br> 
<%= f.number_field :source_id%> 
</p> 

<p> 
<%= f.submit %> 
</p> 
<% end %> 
입니다 템플릿 포함의

NoMethodError in Discussions#new 
Showing C:/Users/punitha/aggregator/app/views/discussions/_form.html.erb where line #1 raised: 

undefined method `discussions_index_path' for #<#<Class:0x4375758>:0x437d6d8> 

Extracted source (around line #1): 

1 <%= form_for @discussions do |f| %> 
2 <% if @discussions.errors.any? %> 
3  <div id="error_explanation"> 
4  <h2><%= pluralize(@discussions.errors.count, "error") %> prohibited 

추적 : 는 나는 다음과 같은 오류가 발생합니다

내 app/views/discussions/new.html. ERB는 당신이 단일 인스턴스 (@discussion)에해야 할 때 배열 (@discussions)로 설정되어 form_for있어

<h1>New discussion</h1> 

<%= render 'form' %> 

<%= link_to 'Back', discussions_path %> 

routes.rb 파일

Aggregator::Application.routes.draw do 
get "welcome/index" 
root 'welcome#index' 


resources:discussions do 
resources :comments 
end 
end 
+0

은 분명히 당신은 경로를 호출하고 정의되지 않았습니다. 'routes.rb' 파일을 공유 할 수 있습니까? – lucke84

+0

리소스와 : 토론 사이에 공백을 넣으십시오. –

+0

@punitha 당신이'@ discussion'을 정의 할 때 컨트롤러의 액션을 게시 할 수 있습니까? – RAJ

답변

0

이다. 에 현재 form_for 표현을 변경, 양식에,

@discussion = Discussion.new 

그런 : 당신의 DiscussionsController의 새로운 방법에

, 다음을 따라 뭔가를 확인하는이 사라질 때

form_for @discussion 

당신의 오류. 모든

0

먼저 당신이 routes.rb에 오타 실수를 수정해야합니다. 그것은해야

(나는 resources:discussions 사이에 공백을 추가 한)과 같습니다.

Aggregator::Application.routes.draw do 
    get "welcome/index" 
    root 'welcome#index' 

    resources :discussions do 
    resources :comments 
    end 
end 

크레이그 카민스키가 말했듯이, 당신이 discussion 기록의 배열로 @discussions가있는 것 '을 컨트롤러의 액션 new에서

, 당신은 당신의 객체를 초기화해야합니다

@discussion = Discussion.new 

그리고 당신은 동일한 인스턴스 변수를 사용해야 형성 (@discussion)

<%= form_for @discussion do |f| %> 
    <% if @discussion.errors.any? %> 
     <div id="error_explanation"> 
     <h2><%= pluralize(@discussion.errors.count, "error") %> prohibited 
     ... 
    <% end %> 
    ... 
    ... 
    <% end %>