在我的一个表单中,我有一个名为event_id的元素,我从下拉框中选择该值。一旦我选择了event_id,我想使用Ajax来调用控制器,并将panel_event_id作为ruby变量返回,我可以在其余的表单中使用它。这就是我正在做的事情:
在routes.rb中,我有以下内容:
match 'panel_event_id', :to => "panels#event_id"
我有以下javascript函数(不确定语法):
<script type="text/javascript">
$('select').change(set_session_event_id);
function set_session_event_id()
{
var event_id = document.getElementById("event_id");
var event_id_value = event_id.value;
$.post('panel_event_id', { set_event_id: event_id_value });
}
</script>
我在panel_controler.rb中放入了以下方法:
def panel_event_id
end
我如何在我看来采取行动?
答案 0 :(得分:1)
您可以在控制器中渲染json:
def panel_event_id
...
render :json => panel_event.as_json(:only => [ :id ])
end
之后,您可以处理post方法的成功事件。请参阅此处的文档:http://guides.rubyonrails.org/layouts_and_rendering.html和此处http://api.jquery.com/jQuery.post/以及此处http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-as_json。