【问题标题】:How to pass variables to a best_in_place display_as custom method如何将变量传递给 best_in_place display_as 自定义方法
【发布时间】:2014-03-21 17:21:24
【问题描述】:

我正在尝试将变量传递给 best_in_place display_as 自定义方法。类似于下面的代码:

<%= best_in_place @track, :forms_metadata,
    type: :date, 
    nil: 'Set Due Date',
    display_as: :this_forms_metadata(@track, form.id),
    path: update_forms_metadata_admin_track_path(@track, form_id: form.id) %>

但是,我收到此错误:

syntax error, unexpected '(', expecting ')'

在tracks_controller.rb中:

def this_forms_metadata(track, form_id)
  track.forms_metadata[form_id.to_s]["due_date"]
end

谁能看到我做错了什么,或者这甚至可能吗?

感谢您的帮助。

【问题讨论】:

  • 您能否在best_in_place 方法中发布完整的错误消息和您期望的参数?
  • 这似乎是我收到的唯一错误消息。我在上面的控制器中添加了该方法的外观。如果有帮助的话。

标签: ruby-on-rails best-in-place


【解决方案1】:

通过

this_forms_metadata(@track, form.id)

作为方法而不是符号。 其次你不能在你的视图中使用控制器方法,你应该移动

this_forms_metadata(@track, form.id)

到帮助文件,然后将其用作方法而不是符号。 这是您需要在视图中编写的内容

<%= best_in_place @track, :forms_metadata,
 type: :date, 
 nil: 'Set Due Date',
 display_as: this_forms_metadata(@track, form.id),
 path: update_forms_metadata_admin_track_path(@track, form_id: form.id) %>

将您的方法“this_forms_metadata”移动到帮助文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多