首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails请求格式为JS,需要请求查找常规Rails模板

Rails请求格式为JS,需要请求查找常规Rails模板
EN

Stack Overflow用户
提问于 2016-09-09 06:13:42
回答 1查看 26关注 0票数 0

我正在尝试使用javascript通过#new操作在rails中部分呈现引导模式(语法是超薄模板,只是更清晰的erb)。

代码语言:javascript
复制
= link_to 'ADD NEW', new_hiring_site_path, {:style=>'color:#FFFFFF;', data: { toggle: "modal", target: "#hiring_site_modal"}}

这是#new操作呈现的部分:

代码语言:javascript
复制
#hiring_site_modal.modal.fade tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false"
  .modal-dialog
    .modal-content
      .modal-header
        #hiring_site_modal_header.h4.modal-title
      .modal-body.address-section
        .form-group.hidden
          input type="hidden" id="hiring_site_id" name="hiring_site_id" value='0'
        .form-group
          label for='hiring_site_address_line_1' Address Line 1
          input.form-control.input-lg.address_line_1.required.input-length-long type="text" id='hiring_site_address_line_1' name='hiring_site_address_line_1'
...

这是我的控制器操作:

代码语言:javascript
复制
def new
  @site = HiringSite.new({})

  respond_to do |f|
    f.html
  end
end

现在,当我像这样提交一个请求时,我得到的响应是:

代码语言:javascript
复制
[Request Summary] {:method=>"GET", :path=>"/hiring_sites", :format=>:html, :controller=>"HiringSitesController", :action=>"index", :status=>200, :duration=>2083.21, :view=>1979.28, :db=>2.84, :application=>"enrollment-rails-app", :rails_env=>"development"

当我在链接助手中将路由更改为格式为html时:

代码语言:javascript
复制
= link_to 'ADD NEW', new_hiring_site_path(format: 'html'), {:style=>'color:#FFFFFF;', data: { toggle: "modal", target: "#hiring_site_modal"}}

然后,客户端最终查找new.html文件。你知道我如何让它生成一个默认的控制器响应来呈现一个模板吗?

或许我应该坚持打高尔夫球。

EN

回答 1

Stack Overflow用户

发布于 2016-09-11 01:20:31

按照rails的惯例,当你调用一个控制器动作时,Rails将通过自动尝试render一个同名的视图模板(位于与控制器同名的视图文件夹中)来结束它。在您的示例中,调用#new控制器操作会导致rails尝试render new.html视图模板。

如果您希望您的控制器操作render一个不同的视图模板,可以使用render "template_name"函数执行此操作。如果希望控制器操作呈现部分视图模板,可以使用render partial: "partial_name"函数来实现。

在您的示例中,您希望#new操作呈现特定的部分,因此希望以render partial: "partial_name"结束您的#new操作

(为了清楚起见--因为您问到了如何让Rails呈现模板:new.html是一个视图模板)

有关使用Rails的render函数的更多信息,可以在"Layout and Rendering in Rails“Rails guide:http://guides.rubyonrails.org/layouts_and_rendering.html#using-render中找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39400963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档