Rails 3-如何在create动作中访问传递给新动作的参数

时间:2013-01-23 03:49:20

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

所以我有以下链接将参数experience_id传递给experience_skills控制器的新操作。

<%= button_to 'Add Skill', new_experience_skill_path(:experience_id => experience.id),:remote => "true", :class => "btn", :id => "new-experience-skill-btn" %>

这很好 - 即params [:experience_id]是正确的价值!

问题是我需要在我的experience_skills控制器的创建操作中访问params [:experience_id],以便某些javascript和ajax能够正常运行。

如何在create action ???

中访问传递给新操作的参数

提前感谢您的帮助。 当然,如果你给我正确的答案,我会接受它。 -Alex

2 个答案:

答案 0 :(得分:1)

你试图访问params [:experience_id]?在新的行动或创造行动?

在您的表单中,您可以这样做,例如:

   <div class="field">    
       <%= f.hidden_field :experience_id, :value => @instant_obj.id %>
   </div>

然后,在你的控制器中采取新行动

 @instant_obj = CLASS.find(params[:experience_id])

确定它可以帮助你..

修改: 如果没有弄错,它只会在New,让我说从我的场景,在Message的新控制器中,它需要ads_id这是隐藏的字段,为了创建Message,它也需要advert_id,所以,我会做

@advertisement = Advertisement.find(params[:advertisement_id])
@message = Message.new(:advertisement_id => @advertisement.id)

然后当我保存我的Message模型(在创建动作控制器中)时,它将保存所有细节。

答案 1 :(得分:0)

如果您使用新的表单,则可以从隐藏字段中发送此值。