Javascript RubyonRails->;动态创建div

Javascript RubyonRails->;动态创建div,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我在一个任务管理器应用程序上工作,我想用rails数据库中的所有数据创建html div“卡片”(带有标题、持续时间等) 我想我必须使用javascript函数,但我找不到方法来实现它。 我在google上看到了很多东西,但我找不到来自rails控制器的javascript调用(因为我只捕获控制器中的所有数据) 这是我的控制器: def new # Retrieve all tasks in the project @taskModel = Task.new() @projectTa

我在一个任务管理器应用程序上工作,我想用rails数据库中的所有数据创建html div“卡片”(带有标题、持续时间等)

我想我必须使用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
ActionController::UnknownFormat
表示您的ajax请求被解释为格式错误的请求。为了更好地回答这一部分,您必须使用ajax调用发布javascript

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

(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

您多次呼叫
response_to
,这是错误的。将此循环放入
new.js.erb
视图。

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

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

(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

您多次呼叫
response_to
,这是错误的。将此循环放入
new.js.erb
视图中。

是否使用angular?为什么你必须使用javascript函数。我只使用ruby on rails,我只需要javascript来动态创建html元素。我确定我不能在html中加载我的js文件,因为我先用rails下载db数据,然后我需要用它创建html标记。你用angular吗?为什么你必须使用javascript函数。我只使用ruby on rails,我只需要javascript来动态创建html元素。我明确指出我不能在html中加载我的js文件,因为我先用rails下载db数据,然后我需要用它创建html标记。