サイト全体でルートによって生成されたリソース パス (つまり、 my : 、など)を使用して、各アクションに を使用してブログを作成しRails 3.2.5
ています。ページにアクセスしようとすると、突然次のエラーが表示されます。link_to
code_entries
code_entries_path
new_code_entry_path
undefined local variable or method `controller' for #<CodeEntriesController:0x007f887f8b3300>
このエラーは私のindex
アクションによるものですcode_entries_controller.rb
が、コントローラーでどのアクションに移動しようとしてもlink_to
、ルートリソースパスを使用するたびにこのエラーが発生します。以前は問題なく動作していましたが、何が原因なのかわかりません。
この質問は my のコンテキストにあるため、 、、およびエラーcode_entries
のコードは次のとおりですが、 action のコンテキストにあります。code_entries_controller.rb
/code_entries/index.html.haml
routes.rb
code_entries#index
code_entries_controller.rb
class CodeEntriesController < ApplicationController
before_filter :authenticate_action
def index
@entries = CodeEntry.order("created_at desc")
end
def new
@entry = CodeEntry.new
end
def show
@entry = CodeEntry.find_by_id(params[:id])
end
def create
@entry = CodeEntry.new(params[:code_entry])
if @entry.save
redirect_to code_entry_path(@entry), :notice => "#{@entry.title} has been created"
else
puts @entry.errors.messages.inspect
render "new"
end
end
def edit
@entry = CodeEntry.find_by_id(params[:id])
end
def update
@entry = CodeEntry.find_by_id(params[:id])
if @entry.update_attributes(params[:code_entry])
redirect_to code_entry_path(@entry), :notice => "#{@entry.title} has been updated"
else
puts @entry.errors.messages.inspect
render "edit"
end
end
def destroy
@entry = CodeEntry.find_by_id(params[:id])
@entry.destroy
redirect_to code_entries_path, :notice => "#{@entry.title} has been deleted"
end
end
/code_entries/index.html.haml
%h1 Hello!
%br
- @entries.each do |e|
%h2= link_to e.title, code_entry_path(e)
%h3= e.updated_at
= raw excerpt(e, 200)
%br
- if current_user
= link_to "Edit", edit_code_entry_path(e)
= button_to "Delete", code_entry_path(e), :confirm => "Really really?", :method => :delete
%hr
routes.rb
Blog::Application.routes.draw do
resources :users
resources :code_entries
resources :food_entries
resources :inclusive_entries
resources :sessions
root :to => "home#index"
get "login" => "sessions#new", :as => "login"
get "logout" => "sessions#destroy", :as => "logout"
get "users/new"
end
NameError in Code_entries#index
/Users/kyle/Projects/blog/app/views/code_entries/index.html.haml で 4 行目を表示:
undefined local variable or method `controller' for #<CodeEntriesController:0x007f887f813418>
抽出されたソース (4 行目あたり):
1: %h1 Hello!
2: %br
3: - @entries.each do |e|
4: %h2= link_to e.title, code_entry_path(e)
5: %h3= e.updated_at
6: = raw excerpt(e, 200)
7: %br
Rails.root: /Users/kyle/Projects/blog
アプリケーション トレース | フレームワーク トレース | 完全なトレース
app/views/code_entries/index.html.haml:4:in `block in _app_views_code_entries_index_html_haml___3334012984247114074_70112115764360'
app/views/code_entries/index.html.haml:3:in `_app_views_code_entries_index_html_haml___3334012984247114074_70112115764360'
Request
パラメーター:
None
セッションダンプを表示
環境ダンプを表示
応答
ヘッダー:
None