私はレールに署名を持つメソッドを持っています:
def my_function(some_variable)
end
次のように jquery get 関数からメソッドを呼び出します。
$.get('/controller/my_function', {data: mydata}, function(){
});
しかし、引数も送信する必要があるため、エラーが発生します。どうやってやるの?
私はレールに署名を持つメソッドを持っています:
def my_function(some_variable)
end
次のように jquery get 関数からメソッドを呼び出します。
$.get('/controller/my_function', {data: mydata}, function(){
});
しかし、引数も送信する必要があるため、エラーが発生します。どうやってやるの?
コントローラーでアクションを定義し、そのアクションから関数を呼び出す必要があります
def my_action
my_function(params[:data])
end
jquery スクリプトは my_action を呼び出します
$.get('/controller/my_action', {data: mydata}, function(){
});
@Henryが指摘したように-JavaScriptコードdata: xxxx
では、HTTPパラメーターがブラウザーからサーバー上のRailsコントローラーアクションに送信されるため、RailsはすべてのHTTPパラメーターをparams
ハッシュに入れます。
var data = {
first_name: "Joe",
last_name: "Smith"
}
$.get('/controller/some_action', data, function() {
// ...
サーバー上のparamsハッシュにあるものにアクセスします
def some_action
logger.debug params.inspect
# => { :first_name => "Joe", :last_name => "Smith", :action => "some_action" }
user.first_name = params[:first_name]
# ...
end