【问题标题】:how to pass form_builder in jquery escape_javascript如何在 jquery escape_javascript 中传递 form_builder
【发布时间】:2013-01-17 12:44:19
【问题描述】:

我有两个类 MessageComment 关联如下

class Message ActiveRecord::Base
  attr_accessible :comments_attributes
  has_many :comments
  accepts_nested_attributes_for :comments
end

class Comment ActiveRecord::Base
  belongs_to :message
end

我将我的表单建模为

= form_for @message do |f|
  f.text_field :msg
  %a#add-comment Add Comment

_comment.html.haml
  = f.fields_for :comments do |c|
      c.text_field :value

当点击“添加评论”按钮时,我通过 jquery 将评论输入附加到表单 f 中,如下所示

$('#add-comment').click(function() {
  $('#add-comment').prepend(("#{escape_javascript(render(:partial => "comment", f: f))}");  
});

但我无法访问此表单,我正在获取

Undefined local variable or method 'f'

如何做到这一点?

【问题讨论】:

  • 你的 javascript 代码保存在哪里?

标签: ruby-on-rails ruby-on-rails-3 forms actionview actionviewhelper


【解决方案1】:

在您的表单中试试这个。我假设:

  = f.fields_for :comments do |c|
      c.text_field :value

在您的评论中不完整。

所以你的表单应该是这样的,并将 f 变量传递给部分

= form_for @message do |f|
  f.text_field :msg
  %a#add-comment Add Comment

  = render :partial => 'comment', :locals => {:f => f}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多