gpt4 book ai didi

ruby-on-rails - 将 ActionView::Helpers::FormBuilder 传递给部分

转载 作者:行者123 更新时间:2023-12-04 11:43:22 24 4
gpt4 key购买 nike

我正在尝试在给定某个 AJAX 请求的情况下动态创建表单元素。

这是我的设置:

看法:

    <%= link_to 'Next', check_unique_id_students_path, :remote => true %>

<div id="guardian_student_details"></div>

Controller :
def check_unique_id
@student = Student.new
@this_form = ActionView::Helpers::FormBuilder.new(:student, @student, @template, {}, proc{})
end

JS:
jQuery("#guardian_student_details").html("<%=escape_javascript(render :partial => "student_details", :locals => { :s => @this_form }) %>");

部分的:
<% puts s.text_field :first_name   %>
<% puts s.field_helpers %>

出于调试目的,我将以下几行放在我的部分的开头:
<% puts s.class.to_s %>
<% puts s.object.to_s %>

这打印出来:
ActionView::Helpers::FormBuilder
Student

这应该有效。但是 rails 给出了以下错误:
ActionView::Template::Error (undefined method `text_field' for nil:NilClass):
1: <% puts s.class.to_s %>
2: <p>
3: <%= s.text_field :first_name, :class => 'text_input is_empty' %>
4: <%= s.label :first_name %><strong>*</strong>
5: </p>
6:

app/views/students/_student_details.html.erb:3:in _app_views_students__student_details_html_erb__2485891544130782916_2214680440'
app/views/students/check_unique_id.js.erb:2:in
_app_views_students_check_unique_id_js_erb__3504800328150418937_2214933160'

这意味着“s”是 NIL,我之前仅验证了 2 行。有人有任何想法吗?我不知道这是否与 Controller 中初始化的“@template”变量有关。我玩过并接受几乎任何东西,如果打印是零。
任何帮助,将不胜感激。谢谢

最后说明:

我试图实现这个: AJAX update of accepts_nested_attributes_for partials

最佳答案

对于需要在 Controller 中构建表单构建器的任何人,view_context 仍然可以在那里工作。使用 Rails 4.1.4:

@object = Object.new
@f = ActionView::Helpers::FormBuilder.new(:object, @object, view_context, {})

关于ruby-on-rails - 将 ActionView::Helpers::FormBuilder 传递给部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com