2016-02-25 4 views
1

Я работаю над приложением диспетчера задач, и я хочу создать html div 'cards' (с названием, длительностью и т. Д.) Со всеми данными, которые я получил в базе данных в рельсы.Ruby on Rails -> Создать div динамически

Я предполагаю, что мне нужно использовать функции javascript, но я не могу получить способ сделать это. Я видел много вещей в google, но я не могу найти точно javascript-вызовы от контроллера rails (потому что я только улавливаю все данные в контроллере).

Вот мой контроллер:

def new 
    # Retrieve all tasks in the project 
    @taskModel = Task.new() 
    @projectTasks = @taskModel.getProjectTasks() 
    # Add tasks on html 
    ([email protected]).each do |i| 
    respond_to do |format| 
     format.js { render :js => "window.createTask();" } # I need to pass parameters in the createTask function 
    end 
    end 
end 

и мой JS файл:

window.createTask = (title, content, duration) -> 
    card = document.createElement('div'); 
    document.getElementsByClassName('content')[0].appendChild(card); 

С моим кодом, я получаю эту ошибку: ActionController::UnknownFormat

+0

Вы используете угловой? почему вы ** должны использовать javascript-функции **. – MilesStanfield

+0

Я использую только рубины на рельсах, мне просто нужен javascript для динамического создания элементов html. – Karz

+0

Я точно не могу загрузить файл js в html, потому что сначала загружаю db-данные с рельсами, а затем мне нужно создать html-теги с ним. – Karz

ответ

0

ActionController::UnknownFormat указал, что ваш запрос Ajax интерпретируется как запрос с неправильным форматом. Чтобы лучше ответить на эту часть, вам придется разместить javascript с помощью вызова ajax.

Во-вторых, вы должны пересмотреть render в этом блоке

([email protected]).each do |i| 
    respond_to do |format| 
     format.js { render :js => "window.createTask();" } # I need to pass parameters in the createTask function 
    end 
    end 

Вы звоните respond_to несколько раз, что просто неправильно. Поместите этот цикл в вид new.js.erb.

Смежные вопросы