Ruby on Rails - >动态创建div

时间:2016-02-25 15:53:07

标签: javascript ruby-on-rails ruby

我在一个任务管理器应用程序上工作,我想创建html div'card'(带标题,持续时间等等),以及我在rails中的数据库上获得的所有数据。

我想我必须使用javascript函数,但我无法做到这一点。 我在google上看到了很多东西,但我找不到来自rails控制器的确切javascript调用(因为我只捕获控制器中的所有数据)。

这是我的控制器:

def new
  # Retrieve all tasks in the project
  @taskModel = Task.new()
  @projectTasks = @taskModel.getProjectTasks()
  # Add tasks on html
  (0..@projectTasks.length).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

1 个答案:

答案 0 :(得分:0)

ActionController::UnknownFormat表示您的ajax请求被解释为格式错误的请求。要更好地回答这部分内容,您必须使用ajax调用发布javascript。

其次,您必须重新考虑此块中的render

(0..@projectTasks.length).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视图。