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" /> 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ère étape: veuillez afficher les données 'POST' de la page d'erreur. – jimworm
Aussi: votre console montre un 'GET' à l'action' index', mais vous parlez de 'create'? – jimworm
Salut jim je rends mon _form.hml.erb patial à la page d'index, d'où cette confusion – Ravindra