【发布时间】:2012-03-19 06:28:15
【问题描述】:
我目前正在尝试构建一个小部件,它将根据用户名检索艺术家列表。
Ruby 方法需要一个用户名参数,然后调用 API 来检索实际的字符串数组。
网页有一个输入字段,用户可以在其中填写他/她的用户名。我的目标是立即调用 ruby 方法并显示艺术家列表。我的问题是能够使用实际的表单输入作为参数。我认为使用 params[:user] 会相对容易,就像在 Sinatra post 方法中一样。唉,事实证明不是。
我尝试了 JS 方法并在 :onkeyup 之后直接调用该方法。
Javascript:
userChanged = function() {
var user = document.getElementById("username");
if (user.value.length != 0){
artists = #{RFCore::get_artists(:name => params[:user]).to_json};
art_list.innerHTML = artists
};
};
:onkeyup
:onkeyup => "art_list.innerHTML = #{RFCore::get_artists(:name => params[:user])[0]}"
我已将 params[:user] 替换为我能想到的所有变体,例如“#{user}”和 user。
返回的错误是“#{user}”和用户的未定义方法[]' for params[:user] and undefined local variable or methoduser'。
也许有一个简单的解决方案;但这种感觉开始蔓延到我身上,我的方法一开始就是错误的。我对实现这一目标的任何其他方式持开放态度。
【问题讨论】:
标签: ruby asynchronous sinatra user-input