2012-03-20 50 views
2

与新值刷新动作我已经在我的模型如下关系:导轨 - 在PARAMS

用户可以有多个消费者

根据这一点,我称之为从依赖不同的控制器几个动作在那个consumer_id在URL中。所以,我做的东西,如:

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

我希望能够考虑到我是在一个特定的观点,让我们说/ 3 /产品/所有,能够刷新,重定向或什么是最好的/ 4 /产品/全部,并以表格显示附属于该用户的不同消费者。

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

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

回答

2

您可以访问使用controller_name和两个电流控制器使用action_name

+0

如果URL中还有其他参数呢?所以.. /:consumer_id/particular_action?param ..? – 2012-03-20 22:58:56

+0

这些应该都位于参数散列中,您可以将其复制到新动作 – 2012-03-20 23:28:42

+0

Upvoted。但是,我要编辑这个问题,因为我有点困惑,我相信我没有解释我自己。 – 2012-03-20 23:35:00

0

你的问题当前操作的视图里面是不明确的。您想从表单中选择consumer_id,然后在同一页面内使用该用户标识或用于指向其他页面的链接?

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

如果你想使用的链接,消费者ID,

  • 你也可以使用jQuery来更新页面
  • 上的所有链接或者,您可以提交表单与新consumer_id服务器。
2

这是一个链接到同一页面使用相同的参数以及一个附加参数:

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

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