我得到這個錯誤,對於我的生活我無法弄清楚爲什麼。幫助將不勝感激。 :Ruby on Rails,查看屬性
錯誤3:error displayed after changes
錯誤4:after User.all.each do |user|
錯誤:未定義方法 '各自' 的零:nilClass
我的紅寶石/ HAML代碼如下
觀看者代碼:
-# This file is app/views/projects/index.html.haml
%h1 All Project Tasks
= form_tag projects_path, :method => :get do
Include:
- @all_users.each do |user|
= user
= check_box_tag "users[#{user}]", 1, ("checked" if @filtered_users.find_index(user))
= submit_tag 'Refresh', :id => "users_submit"
%table#projects
%thead
%tr
%th{:class => ("hilite" if params[:sort] == "title")}= link_to "Title", {:controller => "projects", :sort => "title", :filter => @filtered_users.to_s}, :id => "title_header"
%th Task Details
%th Assigned Usertimot
%th{:class => ("hilite" if params[:sort] == "due_date")}= link_to "Due Date", {:controller => "projects", :sort => "due_date", :filter => @filtered_users.to_s}, :id => "due_date_header"
%tbody
- @projects.each do |project|
%tr
%td= project.title
%td= link_to "More about #{project.title}", project_path(project)
%td= project.user
%td= project.due_date.to_formatted_s(:long)
= link_to 'Add new project task', new_project_path
控制器代碼:
class ProjectsController < ApplicationController
def show
id = params[:id] # retrieve project task ID from URI route
@project = Project.find(id) # look up project task by unique ID
# will render app/views/projects/show.<extension> by default
def index
@projects_users = Project.all_users
# remembered settings
if (params[:filter] == nil and params[:users] == nil and params[:sort] == nil and
(session[:filter] != nil or session[:users] != nil or session[:sort] != nil))
if (params[:filter] == nil and session[:filter] != nil)
params[:filter] = session[:filter]
end
if (params[:sort] == nil and session[:sort] != nil)
params[:sort] = session[:sort]
end
redirect_to projects_path(:filter => params[:filter], :sort => params[:sort], :users => params[:users])
else
if (params[:filter] != nil and params[:filter] != "[]")
@filtered_users = params[:filter].scan(/[\w-]+/)
session[:filter] = params[:filter]
else
@filtered_users = params[:users] ? params[:users].keys : []
session[:filter] = params[:users] ? params[:users].keys.to_s : nil
end
end
session[:sort] = params[:sort]
session[:users] = params[:users]
if (params[:sort] == "title")
if (params[:users]or params[:filter])
@projects = Project.find(:all, :order => "title")
end
end
if (params[:sort] == "due_date")
if (params[:users]or params[:filter])
@projects = Project.find(:all, :order => "due_date")
end
if (params[:sort] == nill)
if(params[:users] or params[:filter])
@projects = Project.all
end
end
end
end
def new
# default: render 'new' template
end
def create
@project = Project.create!(project_params)
flash[:notice] = "#{@project.title} was successfully created."
redirect_to projects_path
end
def edit
@project = Project.find params[:id]
end
def update
@project = Project.find params[:id]
@project.update_attributes!(project_params)
flash[:notice] = "#{@project.title} was successfully updated."
redirect_to project_path(@project)
end
def destroy
@project = Project.find(params[:id])
@project.destroy
flash[:notice] = "Project '#{@project.title}' deleted."
redirect_to projects_path
end
private
def project_params
params.require(:project).permit(:title, :description, :extended_description, :user, :due_date)
end
end
end
我明白,HAML的間距可有點過,試圖代碼塊在此先感謝格式化僅僅是自然!
觀衆代碼:
class Project < ActiveRecord::Base
def self.all_users
allUsers = []
Project.all.each do |project|
if (allUsers.find_index(project.user) == nil)
allUsers.push(project.user)
end
end
return allUsers
end
end
能否請您發佈完整的異常回溯以及該視圖的控制器操作代碼? –
當然,給我一分鐘 –
我爲你添加它 –