我想通过ajax将一些数据从视图发送到rails中的控制器。
我有以下代码 应用程序/视图/静态/ home.html.erb
<script type="text/javascript">
var dummy = "testtext";
$('#finish').click(function() {
$.ajax( {
url: '/finish',
type: 'POST',
data: dummy,
dataType: 'text'
});
});
</script>
<body>
<%= button_to "Finish", {:action => 'finish', :controller => 'static'}, :method => :post, id => 'finish' %>
</body>
在 应用程序/视图/静态/ finish.html.erb
<p><%= @data %></p>
应用程序/控制器/ static_controller.rb
def finish
@data = params[:data]
end
在routes.rb
中post 'finish' => 'static#finish'
我的理解是,在按钮上单击将执行ajax脚本,rails操作将存储从视图传递的数据。这似乎不起作用。我不确定我对流程的理解是否正确。
答案 0 :(得分:0)
因为您在控制器中调用params [:data],所以需要在AJAX数据部分指定{data:dummy}
<script type="text/javascript">
var dummy = "testtext";
$('#finish').click(function() {
$.ajax( {
url: '/finish',
type: 'POST',
data: {data: dummy},
dataType: 'text'
});
});
</script>
此外,您可能希望使用以下
在控制器中响应您的AJAX调用def finish
@data = params[:data]
respond_to do |format|
format.json { insert_your_code_here }
end
end