Rails - 使用params中的新值重新加载动作

时间:2012-03-20 22:27:58

标签: ruby-on-rails refresh params

我的模型中有以下关系:

用户可以拥有多个消费者

根据这一点,我从不同的控制器调用几个动作,这些动作依赖于URL中的 consumer_id 。所以,我做的事情如下:

/:consumer_id/products/all
/:consumer_id/locals/all?params...

我希望能够给出我在特定的视图中,让我们说/ 3 / products / all,能够刷新,重定向或者最好的/ 4 / products / all,以及显示与该用户关联的不同消费者。

我知道如何显示表单,但是我没有看到我应该放置哪个动作,因为我想要加载当前控制器,当前动作和当前参数,除了我想要更改参数[ :consumer_id] 会话[:consumer_id] 是用户以视图形式选择的那个。

这样做的最佳或适当方式是什么?

3 个答案:

答案 0 :(得分:2)

在视图中,您可以使用controller_name访问当前控制器,使用action_name访问当前操作

答案 1 :(得分:2)

这是指向具有相同参数和一个附加参数的同一页面的链接:

<%= link_to "Show more results", url_for(params.merge(:per => 100)) %>

如果要修改参数而不是添加新参数,可以修改params哈希,就像修改任何哈希一样,并再次使用url_for。

答案 2 :(得分:0)

你的问题不明确。您想从表单中选择consumer_id,然后在同一页面内使用该消费者ID或链接到其他页面?

如果要使用当前页面的使用者ID,则需要使用javascript或JQuery来更新当前页面的所有属性。

如果您想将该消费者ID用于链接,

  • 您也可以使用JQuery更新页面上的所有链接
  • 或者,您可以使用新的consumer_id将表单提交给服务器。