我试图将多个变量传递给渲染语句,该语句将使用以下内容呈现_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
答案 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文件中的模态手动调用它。