Action form_for - >节目

时间:2013-02-10 00:27:37

标签: ruby-on-rails ruby-on-rails-3 routes

网址:/evaluations

我已经制作了一个表格来选择一个特定的项目(一个时期)

class EvaluationsController < ApplicationController
  def index
    @periods = Period.all
  end

我的表格:

<% form_for XXXXX do %>
  <%= collection_select(:period, :period_id, @periods, :id, :fullname) %>
  <%= submit_tag("Valider") %>
<% end %>

我希望表单在提交时进入/ evaluateations / 3(如果所选时间段为3)。

当我手动进入/评估/ 3时,它就像一个魅力,但我真的不知道如何通过提交表单来编写form_for以找到正确的URL。

2 个答案:

答案 0 :(得分:1)

简单方法

提交期间ID以处理数据,然后重定向到处理的操作   以evaluations/:id为参数的:id

redirect_to <youraction>(:period => @id) 

这应该可以解决问题。

不那么简单

如果您想在提交数据后动态更改页面上的内容 - 调用方法并使用javascript响应

respond_to do |format|
  format.js 
end

在javascript响应中,您可以放置​​任何您想要的内容 - 简单的重定向或脚本,这将动态更改页面。这取决于你。

希望它有所帮助。

答案 1 :(得分:0)

您需要使用一些javascript来更新表单的action

$('#period_period_id').change(function() {
  $('form').attr('action', '/evaluations/' + this.value);
})