如何根据请求的来源为对象分配值

时间:2009-12-19 18:09:05

标签: ruby-on-rails

我在RoR中创建的应用程序有一个模型(Practicetest),它的控制器有标准的CRUD动作,然后是Sat&采取行动。周六&行为动作本质上是练习测试的索引,但如果test_format值设置为“sattest”,则测试将显示在practicetest / sat视图上,如果test_format值设置为“acttest”,则测试将显示在practicetest / act下。在sat和amp;行为页面有一个链接来创建一个新的练习测试,但我试图找到一种方法来设置它,以便sat页面为其test_format分配正在创建的对象的值为“sattest”(和act相同) 。关于如何根据创建来自哪个动作来分配值的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解这一点,听起来就像是在sat和act页面上渲染一个新的测试表单。如果你正在使用form_for(我希望你是这样),只需在渲染表单之前指定对象的test_format,并包含一个隐藏字段,以便通过POST请求传递值,这样就可以了是这样的:

<!-- this can be done in the controller or template -->
<% @test = Test.new %>

<!-- assign test_format value -->
<% @test.test_format = "sattest" %>

<% form_for @test do |f| %>
  ...
  <%= f.hidden_field :test_format %>
  ...
<% end %>