Rails:传递值:查看控制器以使用Javascript / Ajax查看

时间:2012-07-18 15:22:13

标签: javascript ruby-on-rails ajax

在我的一个表单中,我有一个名为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

我如何在我看来采取行动?

1 个答案:

答案 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