在我的主页上渲染一个js文件

时间:2018-03-27 09:44:57

标签: ruby-on-rails ruby

如果用户未完全注册以显示模态,我想在我的主页中使用js文件。

为此,我写道:

e.g. if df.x >0:
        print("your count is more than zero for column x ")

` 并进入我的confirmation.js.erb:

class PagesController < ApplicationController
  before_action :info_table, only: [:home]

  def home  
  end

  private 

  def info_table
    respond_to do |format|
      if current_user.name.nil?
        format.html { render "home" }
        format.js { render "pages/js/confirmation" }
      else
        format.html { render "home" }
        format.js { render "pages/js/confirmation" }
      end
    end
  end

end

但没有出现! 你知道我做错了什么吗?

2 个答案:

答案 0 :(得分:2)

你正在渲染html&amp;两种条件下的js格式

  if current_user.name.nil?
    format.html { render "home" }
    format.js { render "pages/js/confirmation" }
  else
    format.html { render "home" }
    format.js { render "pages/js/confirmation" }
  end

但只有一种格式会实际渲染,这取决于对该操作的请求,如果你想渲染js格式,你可能想要做这样的事情

link_to 'Home' home_path, remote: true

或者

  if current_user.name.nil?
    format.js { render "pages/js/confirmation" }
  else
    format.html { render "home" }
  end

答案 1 :(得分:1)

您需要一些JS代码来调用您的home方法并将其标记为 JS

否则它只会呈现 html

@Sikandar Tariq建议的JS链接是一个好方法。 (, remote: true使其成为ajax调用)