在AJAX调用后在rails中渲染局部时的未定义形式变量

池川太郎

我已经尝试了一段时间,以在Rails 4.0中使用AJAX实现动态相关的表单。我有一个bike模型,has_one make并且modelhas_many quotes目的是在选择第一个表单域model后填充第二个表单的集合域(make

一旦选择了第一个字段,表单将正确加载并调用AJAX,并返回适当的数据集(通过控制台中的puts确认)。但是,我无法弄清楚如何适当地渲染部分。我收到下面的错误。我知道一旦通过AJAX调用呈现了部分变量,就不会有f变量,但是我该如何设计没有f变量的表单呢?

ActionView::Template::Error (undefined local variable or method `f' for #<#<Class:0x007f95b0fc2068>:0x007f95b54e2490>):
    1: <%= f.label :name, 'Model' %>
    2: <% if !current_models.blank? %>
    3:  <%= f.collection_select :name, current_models.collect{ |m| [m.name,m.id]}, :id , :name, include_blank: true %>
    4: <% else %>
  app/views/shared/_model_questions_fields.html.erb:1:in `_app_views_shared__model_questions_fields_html_erb__894239665582553972_70140482609500'
  app/controllers/quotes_controller.rb:70:in `update_model_select'

quotes / new.html.erb

<%= form_for @quote do |f| %>
    <%= f.fields_for :bikes do |builder| %>
            <p><%= render 'shared/bike_questions_fields', :f => builder %></p>
    <% end %>
    <%= f.submit "Show Quote", class: "btn btn-large btn-primary" %>
<% end %>

'shared / bike_questions_fields'

<%= f.fields_for :makes do |builder| %>
    <p><%= render 'shared/make_questions_fields', :f => builder %></p>
<% end %>

<%= f.fields_for :models do |builder| %>
    <div id="bikeModels"
        <p><%= render 'shared/model_questions_fields', :f => builder, :current_models => [] %></p>
    </div>
<% end %>

'shared / model_questions_fields'

<%= f.label :name, 'Model' %>
<% if !current_models.blank? %>
    <%= f.collection_select :name, current_models.collect{ |m| [m.name,m.id]}, :id , :name, include_blank: true %>
<% else %>
    <%= f.collection_select :name, [], :id , :name, include_blank: true %>
<% end %>

在报价控制器中:

def update_model_select
    models = Model.where(:make_id=>params[:id]).order(:name) unless params[:id].blank?
    render :partial => "shared/model_questions_fields", :locals => { :current_models => models }
end

在quotes.js.coffee中:

ready = ->
  jQuery ($) ->

  # when the #make field changes
  $("#quote_bikes_makes_name").change ->

    # make a POST call and replace the content
    make = $("select#quote_bikes_makes_name :selected").val()
    make = "0"  if make is ""
    jQuery.get "/quotes/update_model_select/" + make, (data) ->
      $("#bikeModels").html data

    false


$(document).ready(ready)
$(document).on('page:load', ready)
池川太郎

我通过更改'shared/model_questions_fields'为:

<%= form_for('quote', remote: true) do |f| %>
    <%= f.fields_for :bikes do |g| %>
        <%= g.fields_for :models do |i| %>
            <%= i.label :name, 'Model' %>
            <% if !current_models.blank? %>
                <%= i.collection_select :name, current_models, :id , :name, include_blank: true %>
            <% else %>
                <%= i.collection_select :name, [], :id , :name, include_blank: true %>
            <% end %>
        <% end %>
    <% end %>
<% end %>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails形式的未定义局部变量

来自分类Dev

Rails Ajax未定义的局部变量或方法

来自分类Dev

在Rails中未定义的局部变量或方法to_a?

来自分类Dev

在Rails中未定义的局部变量或方法to_a?

来自分类Dev

Ruby on Rails中的局部变量未定义

来自分类Dev

来自create.js.erb的渲染局部中的未定义局部变量

来自分类Dev

渲染局部时出现NoMethodError

来自分类Dev

未定义的局部变量或方法ajax渲染部分轨道

来自分类Dev

未定义的局部变量或方法ajax渲染部分轨道

来自分类Dev

Rails-将ajax添加到局部,“未定义的方法”渲染”

来自分类Dev

未定义时在类对象中调用的变量?

来自分类Dev

rails:未定义的局部变量或方法“请求”

来自分类Dev

Rails:未定义的局部变量或方法“用户”

来自分类Dev

Ruby on Rails未定义的局部变量或方法

来自分类Dev

rails:未定义的局部变量或方法“请求”

来自分类Dev

Ruby on Rails的未定义局部变量或方法`profile'

来自分类Dev

Ruby on Rails错误:未定义的局部变量或方法

来自分类Dev

Rails:未定义的局部变量或方法`options'

来自分类Dev

调用fn时未定义的变量

来自分类Dev

Ruby on Rails中未定义的局部变量/无方法错误

来自分类Dev

Rails 4.2中ApplicationController:Class的未定义局部变量或方法“ gon”

来自分类Dev

Rails 4:OldImagePath模块中的未定义局部变量或方法“ asset_paths”

来自分类Dev

在同一行中设置局部变量时未定义

来自分类Dev

部分中的未定义局部变量

来自分类Dev

Rspec测试中未定义的局部变量或方法?

来自分类Dev

在我的主中未定义局部变量

来自分类Dev

在主干中渲染下划线模板数据时未定义的变量

来自分类Dev

Rails 4:在编辑表单时显示上传的图像-获取未定义的局部变量或方法

来自分类Dev

Python:调用包含变量的函数时,变量未定义

Related 相关文章

  1. 1

    Rails形式的未定义局部变量

  2. 2

    Rails Ajax未定义的局部变量或方法

  3. 3

    在Rails中未定义的局部变量或方法to_a?

  4. 4

    在Rails中未定义的局部变量或方法to_a?

  5. 5

    Ruby on Rails中的局部变量未定义

  6. 6

    来自create.js.erb的渲染局部中的未定义局部变量

  7. 7

    渲染局部时出现NoMethodError

  8. 8

    未定义的局部变量或方法ajax渲染部分轨道

  9. 9

    未定义的局部变量或方法ajax渲染部分轨道

  10. 10

    Rails-将ajax添加到局部,“未定义的方法”渲染”

  11. 11

    未定义时在类对象中调用的变量?

  12. 12

    rails:未定义的局部变量或方法“请求”

  13. 13

    Rails:未定义的局部变量或方法“用户”

  14. 14

    Ruby on Rails未定义的局部变量或方法

  15. 15

    rails:未定义的局部变量或方法“请求”

  16. 16

    Ruby on Rails的未定义局部变量或方法`profile'

  17. 17

    Ruby on Rails错误:未定义的局部变量或方法

  18. 18

    Rails:未定义的局部变量或方法`options'

  19. 19

    调用fn时未定义的变量

  20. 20

    Ruby on Rails中未定义的局部变量/无方法错误

  21. 21

    Rails 4.2中ApplicationController:Class的未定义局部变量或方法“ gon”

  22. 22

    Rails 4:OldImagePath模块中的未定义局部变量或方法“ asset_paths”

  23. 23

    在同一行中设置局部变量时未定义

  24. 24

    部分中的未定义局部变量

  25. 25

    Rspec测试中未定义的局部变量或方法?

  26. 26

    在我的主中未定义局部变量

  27. 27

    在主干中渲染下划线模板数据时未定义的变量

  28. 28

    Rails 4:在编辑表单时显示上传的图像-获取未定义的局部变量或方法

  29. 29

    Python:调用包含变量的函数时,变量未定义

热门标签

归档