我是Rails的新手,所以我不知道这是否是最佳实践。我正在尝试使用ajax将用户输入从索引视图发送到索引操作,然后使用用户输入更新视图。我不是要将此输入保存在数据库中。
@url始终返回nil。
注意:我尝试创建一个自定义动作,但是运气不好,因为它需要模板。
预先感谢:)
索引操作
def index
@url = params[:option]
end
索引视图
<input type="text" id="exampleFormControlInput1">
<p id="resp-result"><%= @url %></p>
<script type="text/javascript">
$(".button").click(function(event){
var userinput = document.getElementById("form").value;
console.log(userinput);
event.preventDefault();
$.ajax({
url:"/responses/",
type: "POST",
data: {option: userinput},
dataType: "text",
success:function(result){
alert("success" + result);
},
error:function(result){
alert("error" + result);
}
});
});
</script>
答案 0 :(得分:1)
Yuna,您将需要在json中输出响应。让我们假设您的ajax脚本可以正确地将数据发送到Rails后端的ruby。
尝试一下
在ajax 不是这个
url:"/responses/",
但是
url:"/responses.json",
然后您可以按照
获得结果alert("success" + result.myurl);
您可以 myurl 作为json响应的一部分
最后尝试一下
def index
respond_to do |format|
#@url = params[:option]
@url='nancy more url'
format.json do
render json: {myurl: @url}.to_json
end
end
end