文字列にメソッド名がある場合、Ruby ではsend
メソッドを動的にディスパッチするために使用できます。
method_name = "delete"
send method_name
補間も利用できます。
method_name = "add"
send "#{method_name}_task", args
私はjavascriptで定義された2つの関数を持っています。1つは削除し、もう1つは何かを更新します。それぞれのボタンが動的に追加され、現時点では、delete メソッドのみが を介してバインドされますbutton.on "click"
。
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
delete_task( task_id, this_button )
false
私はこれを行うことができるようにしたいと思います:
method_name = "delete"
b.on "click", (event) ->
event.preventDefault() # stop submission via postback
this_button = $(this)
task_id = this_button.data("task-id")
send "#{method_name}_task", task_id, this_button
false
2 つの関数のバインディングの唯一の違いは、この 1 行です。明らかな方法があれば、繰り返しを減らすとよいでしょう。検索しても何も見つからなかったので、誰か助けていただければ幸いです。