【发布时间】:2016-02-11 06:09:34
【问题描述】:
我有一个控制器,它的新操作正在从两个不同的导航栏链接访问。原因是两个不同的功能需要同一个控制器。 如何传递一些参数以使 Controller 知道从哪个 link_to 访问它? (这样我可以稍微修改一下new.html.erb文件)
【问题讨论】:
标签: ruby-on-rails-4 model-view-controller link-to
我有一个控制器,它的新操作正在从两个不同的导航栏链接访问。原因是两个不同的功能需要同一个控制器。 如何传递一些参数以使 Controller 知道从哪个 link_to 访问它? (这样我可以稍微修改一下new.html.erb文件)
【问题讨论】:
标签: ruby-on-rails-4 model-view-controller link-to
由于控制器的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") %>
希望对您有所帮助。
【讨论】: