模态 - 如何传递正确的变量以在javascript中呈现

时间:2014-09-13 08:57:37

标签: javascript jquery ruby-on-rails bootstrap-modal

我试图将多个变量传递给渲染语句,该语句将使用以下内容呈现_form部分:

 $(document).ready(function() {
  $('#contact_modal').click(function(event){
    $("#modal-window").html("<%= escape_javascript(render 'contacts/form', new_contact: Contact.new ) %>");

我尝试通过执行以下操作传递两个变量:

new_contact: @contact, new_case: @case

但它似乎无法识别new_contact和new_case变量。我如何传入它们然后在simple_form_for中使用它们?

编辑: 我无法使用以下设置(案例has_many联系人):

的routes.rb

resources :contacts

resources :cases do
  resources :contacts, :shallow => true
end

contacts_controller.rb

    def new
     if params[:case_id] 
      @case = Case.find(params[:case_id])
      @contact = @case.contacts.build
      @create_case_contacts_array = [@case, @contact]
     else
      @contact = Contact.new
      @create_case_contacts_array = @contact
     end
   end

   def create
    if params[:case_id] 
      @case = Case.find(params[:case_id])
      @contact = @case.contacts.build(params[:contact])
    else
      @contact = Contact.new(contact_params)
    end

    @contact.user = @user
    ...
   end

index.html.erb(调用模态的地方)

 $("#modal-window").html("<%= escape_javascript( render :partial => "contacts/form", :locals => { :new_case => @case, :new_contact => @contact} ) %>");

_form.html.erb

<%= simple_form_for(new_case, new_contact) do |f| %> 
.
.
.
<%= f.button :submit %>

为什么我的案例/ 1 /联系人页面没有呈现(联系人索引)?我究竟做错了什么?它与index.html.erb行有关,我在这里渲染模态。我收到以下错误:

undefined method `model_name' for NilClass:Class

2 个答案:

答案 0 :(得分:0)

 render :partial => "person", :locals => { :name => "david" ,:surname => "anderson"}

所以这就是你的情况: -

 $("#modal-window").html("<%= escape_javascript( render :partial => "contacts/form", :locals => { :new_contact => @contact ,:new_case => @case} ) %>");

现在,只有new_contact

,您才能轻松访问表单中的new_case@contact and @case are present

答案 1 :(得分:0)

找出问题。

我刚刚没有通过我的contacts_controller.rb中的索引操作传入@contact。实际上永远不会调用新动作,因为我通过index.html.erb文件中的模态手动调用它。