我有一个控制器,可以从两个不同的导航栏链接访问新操作。原因是两个不同的功能需要相同的控制器。 如何通过一些参数使控制器知道从哪个link_to访问它? (这样我可以稍微修改new.html.erb文件)
答案 0 :(得分:0)
由于正在呈现控制器的new
操作,这意味着您必须呈现表单。在这种形式下,您可以传递一个隐藏字段,如下所示:
<%= f.hidden_field :value_name, :value => "true" %>
现在,在您的控制器的create
操作中,您可以在保存之前进行检查:
def create
if params[:model_name][:value_name] == true
# then it must have come from first nav link,hence save that
else
# the value has come from the other nav.
end
end
当您点击第二个导航链接时,您还必须设置值false
,如下所示:
<%= link_to "ABC", resource_path(:value_name => "false") %>
希望有所帮助。