Ich habe ein Formular mit einer Aufgabe (verwendet Rails4 Autocomplete Edelstein) und ein Projekt text_field. Ich möchte es nur durch Auswählen einer Aufgabe füllen können.So füllen Sie Eingabetext von einer anderen Autocomplete-Rails 4
Also, wenn ich
- task1: project1
Wenn ich Typ 'ta' und wählen task1 aus dem Autovervollständigen, möchte ich das Projekt Feld sein gefüllt mit dem entsprechenden Projekt (project1 in diesem Fall).
Dies ist die Form:
<%= form_for :instance, url: instances_path do |f| %>
<%= f.label :task_name %>
<%= f.autocomplete_field :task_name, autocomplete_task_name_static_pages_path %>
<%= f.text_field :project_name %>
<% end %>
Und dies ist der Controller:
class StaticPagesController < ApplicationController
autocomplete :task, :name
end
die documentation Lesen Ich habe versucht, und fügte hinzu:
:display_value => :task_full_info
und
class Task < ActiveRecord::Base
belongs_to :project
def task_full_info
self.project.name
end
end
Aber das funktioniert nicht. Was ist die richtige Art, dies auf Rails 4 mit dem Rails4-Autocomplete-Juwel zu tun? Welche Änderungen sollte ich vornehmen, wenn ich das Projekt text_field in eine Dropdown-Liste ändere?
EDIT: Server-Protokoll:
Started GET "/static_pages/autocomplete_task_name?term=do" for ... at 2016-05-05 18:05:50 -0300
Processing by StaticPagesController#autocomplete_task_name as JSON
Parameters: {"term"=>"do"}
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Task Load (0.4ms) SELECT "tasks"."id" as id, "tasks"."name" as name, "project_name", "tasks"."project_id" FROM "tasks" WHERE (LOWER(name) LIKE 'do%') ORDER BY LOWER(name) ASC LIMIT 10
Project Load (0.3ms) SELECT "projects".* FROM "projects" WHERE "projects"."id" = ? LIMIT 1 [["id", 7]]
Completed 200 OK in 10ms (Views: 0.3ms | ActiveRecord: 1.9ms)
war mein Beitrag überhaupt hilfreich? –
Entschuldigung, aber ich konnte bis jetzt an meinem Projekt nicht arbeiten: D – Gaston