我有一个模型“arbete”的索引,如果提供:id,它会过滤索引并仅显示具有id的车辆的索引。
如果我在视图中创建了一个再次显示整个索引的link_to,它仍然会再次生成索引链接和id,即使我没有提供动作或id。
link_to("show all", :controller => 'arbete')
产生
<a href="/arbete/index/22">show all</a>
我找到的唯一解决方案是指定:id =&gt; ''然后我得到了链接:<a href="/arbete/index">
为什么表现得像这样?
更新
arbete_controller.rb
def index
@arbetecl = Arbete.order("id ASC").where(:oppen => false)
if params[:id].present?
@vehicle = Vehicle.find(params[:id])
@arbeteop = @vehicle.arbetes.all
else
@arbeteop = Arbete.order("id ASC").where(:oppen => true)
end
在视图中链接
<li><%= link_to "Testarbete", :controller => 'arbete' %></li>
如果发送id参数,则生成。
<li><a href="/arbete/index/67">Testarbete</a></li>
的routes.rb
match ':controller(/:action(/:id))', :via => [:get, :post]
我认为它是一个理想的行为,但我找不到原因,它只发生在这个模型和控制器上,但它也是唯一一个获得其索引动作的参数。
答案 0 :(得分:2)
您需要指定动作和控制器,或者编写要为其生成链接的完整URL帮助程序。
link_to("show all", {:controller => 'arbete', :action => 'index'})
或
link_to("show all", arbetes_path)