我正在尝试将变量传递给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
任何人都可以看到我做错了什么,或者这是否可能?
感谢您的帮助。
答案 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'移动到帮助文件