如何将变量传递给best_in_place display_as自定义方法

时间:2014-03-21 17:21:25

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

我正在尝试将变量传递给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

任何人都可以看到我做错了什么,或者这是否可能?

感谢您的帮助。

1 个答案:

答案 0 :(得分: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'移动到帮助文件