【问题标题】:Render alternate view in ruby on rails在 ruby​​ on rails 中渲染替代视图
【发布时间】:2011-08-02 14:15:18
【问题描述】:

我的控制器中有以下代码

  def create
    @severity = Severity.new(params[:severity])
    if @severity.save
      flash[:notice] = "Successfully created severity"
      render 'save'
    end
  end

我正在尝试获取呈现除 create.js.erb 之外的另一个视图文件的方法,但是控制器始终呈现默认值而不是 save.js.erb。

对可能出现的问题有任何想法吗?

【问题讨论】:

    标签: ruby-on-rails-3 view render


    【解决方案1】:
    def create
      @severity = Severity.new(params[:severity])
      if @severity.save
        flash[:notice] = "Successfully created severity"
        respond_to do |format|
          format.js { render :template => "/path/to/save" }
        end
      end
    end
    

    def create
      @severity = Severity.new(params[:severity])
      if @severity.save
        flash[:notice] = "Successfully created severity"
        respond_to do |format|
          format.js { render :file => "/path/to/save.js.erb" }
        end
      end
    end
    

    试试这个

    def create
      @severity = Severity.new(params[:severity])
      if @severity.save
        flash[:notice] = "Successfully created severity"
      end
      render :file => "/path/to/save.js.erb"
    end
    

    【讨论】:

    • 这不起作用,我添加了指向 severities/save 的代码的渲染模板版本,它仍然渲染了默认的 create.js.erb 文件。我需要包含完整路径吗?
    • 你如何调用这个动作?通过ajax?
    • 是的,我有一个带有 :remote => true 属性的 form_for
    • 仍然没有运气,尽管我使用哪种方法来尝试渲染另一个视图,但它始终默认为渲染 create.js.erb
    • 如果你试试这个:render :text => "Hello world!" 如果它不会返回 hello world 那么你的问题不在于你认为
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2017-08-10
    • 1970-01-01
    相关资源
    最近更新 更多