2011-11-19 3 views
-1

Salut les amis, je suis venu avec un nouveau problème. Dans mon application rails, j'ai un contrôleur de tâches et un modèle. Lorsque j'essaie de créer une nouvelle tâche, le message d'erreur "date_début" ne doit pas être vide, mais lorsque je consulte ma console, il y a un message de réussite.console affiche OK mais le navigateur affiche une erreur?

Mon contrôleur:

class TasksController < ApplicationController 

    layout "payroll" , :except => [:closed,:today,:this_week, :this_month] 

    # GET /tasks 
    # GET /tasks.xml 
    def index 
    @menu = "Timesheet" 
    @page_name = "Manage Task" 
    company_id = Company.find_by_subdomain(request.subdomain) 
    @users = User.find_all_by_company_id(company_id) 
    @tasks = Task.find_all_by_assigned_to(session[:current_user_id].to_i)#.page(params[:page]) 
    @task = Task.new 

    respond_to do |format| 
     format.html # index.html.erb 
     format.html # new.html.erb 
     format.xml { render :xml => @tasks } 
    end 
    end 
# POST /tasks 
    # POST /tasks.xml 
    def create 
    @task = Task.new(params[:task]) 
    #@task.assigned_to = session[:user_id] 
    @task.task_status = "0" 

    respond_to do |format| 
     if @task.save 
     Email.task_created(@task).deliver 
     @tasks = Task.all 
     @task = Task.new 
     format.html { redirect_to tasks_path } 
     format.xml { render :xml => @task, :status => :created, :location => @task } 
     else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @task.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

Mon modèle:

class Task < ActiveRecord::Base 
    #validation start 
    validates :description, :due_date, :assigned_to, :priority, :presence => true 
    validates_length_of :description, :maximum =>500 
end 

et Vue:

<%= form_for(@task) do |f| %> 
    <%= render 'shared/form_error', :object => @task %> 

    <div class="field"> 
     <%= f.label :description %><br /> 
     <%= f.text_area :description ,:rows => "2", :cols => "20" %> 
    </div> 
    <div class="field"> 
     <%= f.label :due_date %><br /> 
     <%= f.text_field :due_date %> 
    </div> 
    <div class="field"> 
     <%= f.label :assigned_to %><br /> 
     <%= collection_select(:task, :assigned_to, User.all, :id, :first_name, :prompt =>true) %> 
    </div> 
    <div class="field"> 
     <%= f.label :priority %><br /> 
     <%= f.select (:priority, [['High'],['Medium'],['Low']]) %> 
    </div> 

    <div class="actions"> 
     <button type="submit" class="btn"><img src="/images/add.png" />&nbsp; Add This Task</button> 
    </div> 
<% end % 

Mon message console:

Started GET "/tasks" for 127.0.0.1 at Sat Nov 19 12:27:10 +0530 2011 
    Processing by TasksController#index as HTML 
    ←[1m←[36mCompany Load (0.0ms)←[0m ←[1mSELECT "companies".* FROM "companies" WHERE "companies"."subdomain" = 'rsgroup' 
LIMIT 1←[0m 
    ←[1m←[35mUser Load (0.0ms)←[0m SELECT "users".* FROM "users" WHERE "users"."company_id" = 1 
    ←[1m←[36mTask Load (0.0ms)←[0m ←[1mSELECT "tasks".* FROM "tasks" WHERE "tasks"."assigned_to" = 1←[0m 
Rendered shared/_page_title.html.erb (0.0ms) 
Rendered shared/_no_record.html.erb (0.0ms) 
Rendered tasks/_task_table.html.erb (5.0ms) 
Rendered shared/_form_error.html.erb (1.0ms) 
    ←[1m←[35mUser Load (0.0ms)←[0m SELECT "users".* FROM "users" 
Rendered tasks/_form.html.erb (130.0ms) 
Rendered shared/_sidebar.html.erb (0.0ms) 
Rendered shared/_payroll_footer.html.erb (1.0ms) 
Rendered tasks/index.html.erb within layouts/payroll (173.0ms) 
Completed 200 OK in 253ms (Views: 183.0ms | ActiveRecord: 0.0ms) 

Ici j'utilise j sélecteur de date de requête pour calendrier display.But cause de préoccupation est la raison pour laquelle ma tâche pas enregistré? Guidez-moi s'il-vous-plaît. Merci d'avance.

+1

1ère étape: veuillez afficher les données 'POST' de la page d'erreur. – jimworm

+1

Aussi: votre console montre un 'GET' à l'action' index', mais vous parlez de 'create'? – jimworm

+0

Salut jim je rends mon _form.hml.erb patial à la page d'index, d'où cette confusion – Ravindra

Répondre

0

Salut les amis je suis venu avec une réponse, je viens d'ajouter quelques fichiers script css et java dans mon dossier public et le problème est résolu.

1

Vous avez une erreur dans votre code

format.xml { render :xml => @task, :status => :created, :location => @task }

est appelé après sauvegarde et après assignement de @task = Task.new.

Également erreur peut être dans un format non valide de la date_date qui est POSTed. Comme demandé par @jimworm, fournissez une requête POST, pas la requête de page d'index. À partir de cette requête, nous pourrions obtenir les paramètres soumis, et vous pourriez essayer rails c pour créer le Date à partir de la chaîne soumise et vérifier si ce n'est pas nil.

+0

Salut Mark je suis d'accord avec vous, mais le même code fonctionne dans mes autres formes, qui n'a pas de champ de date.Il donne problème dans les formulaires qui ont un champ de date. – Ravindra

+0

On dirait le problème dans votre format de date. Fournissez les journaux sur la requête POST en tant que @jimworm demandé. –

+0

salut Mark, voulez-vous l'effacer plus s'il vous plaît? – Ravindra

Questions connexes