Weiterleitung per Formular
dieser form (Ansichten/Arbeiter/_form.html-Code.erb) leitet mich auf den index der tasksadmins, nachdem ich push das erstellen tasksadmin' - Taste.
Möchte ich die Umleitung mich zu "Arbeiter/index", und ändern Sie die Schaltfläche 'aktualisieren Sie die task'.
wie kann ich das bitte tun?
<%= form_for(@tasksadmin) do |f| %>
<% if @tasksadmin.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@tasksadmin.errors.count, "error") %> prohibited this tasksadmin from being saved:</h2>
<ul>
<% @tasksadmin.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.hidden_field :admin_mail, :value => @tasksadmin.admin_mail %>
<%= f.hidden_field :worker_mail, :value => @worker_mail %>
<%= f.hidden_field :task, :value => @tasksadmin.task %>
<div class="field">
<%= f.label :done %><br />
<%= f.check_box :done %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
und das ist mein workers_controller:
class WorkersController < ApplicationController
# GET /workers
# GET /workers.json
def index
@tasks_worker = Tasksadmin.where(:worker_mail => "[email protected]")
respond_to do |format|
format.html # index.html.erb
format.json { render json: @workers }
end
end
# GET /workers/1
# GET /workers/1.json
def show
@task_worker = Tasksadmin.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @worker }
end
end
# GET /workers/new
# GET /workers/new.json
def new
@worker = Worker.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @worker }
end
end
# GET /workers/1/edit
def edit
@tasksadmin = Tasksadmin.find(params[:id])
@worker_mail = "[email protected]"
end
# POST /workers
# POST /workers.json
def create
@worker = Worker.new(params[:worker])
respond_to do |format|
if @worker.save
format.html { redirect_to "@worker", notice: 'Worker was successfully created.' }
format.json { render json: @worker, status: :created, location: @worker }
else
format.html { render action: "new" }
format.json { render json: @worker.errors, status: :unprocessable_entity }
end
end
end
# PUT /workers/1
# PUT /workers/1.json
def update
@worker = Tasksadmin.find(params[:id])
respond_to do |format|
if @worker.update_attributes(params[:worker])
format.html { render action: "index", notice: 'Worker was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @worker.errors, status: :unprocessable_entity }
end
end
end
# DELETE /workers/1
# DELETE /workers/1.json
def destroy
@worker = Tasksadmin.find(params[:id])
@worker.destroy
respond_to do |format|
format.html { render action: "index" }
format.json { render json: @worker }
end
end
end
- Die Umleitung geschieht nach der form der Verarbeitung; ändern Sie Ihre controller-code.
- danke, in def update? und was ist mit den Buttons?
- Komisch, dass in Ihrem controller, den Sie manchmal schreiben
Worker
und manchmalTasksadmin
. Ich fände das sehr verwirrend. Sollten es nicht alle sein, nurWorker
s ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrer Steuerung haben Sie zur Weiterleitung auf den entsprechenden Pfad in etwa so:
Ich würde vorschlagen, mit Pfad Helfer also, wenn Sie Ihre Routen eingerichtet, als die Ressourcen, die Sie dies tun können:
Da für die änderung der text der Schaltfläche ändern Sie einfach es zu:
Erstellen Sie ein Formular für ein Objekt
@tasksadmin
, die in IhremWorkersController#edit
ist wie folgt festgelegt:Bedeutet dies, dass dieser parameter enthält ein Objekt der Klasse
Tasksadmin
, wenn du Schienen bauen Sie den Pfad für eineTasksadmin
, wird es Ihnen zu senden, dieTasksadminsController#update
, und das ist, warum Ihr code nicht funktioniert. Sie nie auf dieWorkersController#update
. Überprüfen Sie die Protokolle, um zu überprüfen, dass.Lassen Sie mich darüber sehr klar sein: Sie sollten nicht Bearbeiten
Tasksadmin
Objekte in derWorkersController
.Verstehe ich nicht, warum Sie das tun würden.