railscast 197如何:功能add_fields

问题描述 投票:0回答:1

我遵循railscast 197,但我使用的是rails 3.1.3,jQuery和scaffold,没有任何精妙的东西:scaffold,一切正常,但我无法添加字段,在那一集中Ryan Bates提供了jQuery的代码,但是不适用于我,这是我的代码:

javascript / application.js中>

function remove_fields(link) {  
    $(link).prev("input[type=hidden]").val("1");  
    $(link).closest(".fields").hide();  
  }  

function add_fields(link, association, content) {  
    var new_id = new Date().getTime();  
    var regexp = new RegExp("new_" + association, "g");  
    $(link).parent().before(content.replace(regexp, new_id));  
}

helper / application_helper.rb

module ApplicationHelper
  def link_to_remove_fields(name, f)  
    f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")  
  end  

  def link_to_add_fields(name, f, association)  
  new_object = f.object.class.reflect_on_association(association).klass.new  
  fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|  
    render(association.to_s.singularize + "_fields", :f => builder)  
  end  
  link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))  
end    
end  

_ questions_fields.html.rb

<div class="fields">  
  <p>  
    <%= f.label :content, "Pregunta" %>  
    <%= link_to_remove_fields "remover", f%><br />  
    <%= f.text_area :content, :rows => 3 %><br />  
  </p>  
  <p>
  <% f.fields_for :answers do |builder| %>  
    <%= render 'answer_fields', :f => builder %>  
  <% end %>  
  </p>
  <p><%= link_to_add_fields "Agregar respuesta", f, :answers %></p> 
</div> 

_ form.html.rb

<%= form_for @asurvey do |f| %>    

    <%= f.label :name, "Nombre de encuesta" %><br />
    <%= f.text_field :name %>
  </p>
  <%= f.fields_for :questions do |builder| %> 
  <%= render 'question_fields', :f => builder %>
  <% end %>  
  <p><%= link_to_add_fields "Agregar pregunta", f, :questions %>
  <p><%= f.submit "Crear" %></p>  
<% end %> 

我遵循railscast 197,但我使用的是rails 3.1.3,jQuery和scaffold,没有任何精妙的东西:scaffold,一切正常,但我无法添加字段,在那一集中Ryan Bates提供了jQuery的代码,但是...

ruby-on-rails railscasts
1个回答
0
投票

我找到了解决方案...在stackoverflow中,这是:

© www.soinside.com 2019 - 2024. All rights reserved.