0

我在 c9 云 IDE 中开发了一个 rails 4 应用程序,我有一个视图文件,显示来自不同模型的条目。
我的问题是文件中的某些链接在单击时失败,而同一页面上的其他链接似乎有效。我的应用程序视图中有此代码以生成链接

<%= link_to '確認ここへ', "/#{applist.controller_name.strip}/#{applist.wfs_id}/edit" %>

对于大多数模型,它会生成正确的 URL,例如 ide.c9.io/dname/arubaito_boshu/491/edit,而某些模型会失败,例如https://funin_teate_shikyu/new/518/edit
非常感谢任何帮助

4

1 回答 1

1

你正在做的是真正的rails链接的反模式。要在 rails 中生成链接,请使用相应的..._path方法。

您可以使用以下命令查看您的路线:

$ bin/rake routes

这会给你一些这样的输出:

    users GET    /users(.:format)          users#index
          POST   /users(.:format)          users#create
 new_user GET    /users/new(.:format)      users#new
edit_user GET    /users/:id/edit(.:format) users#edit

从那里您可以为该path方法获取前缀。

使用上面的路线非常简单:

<%= link_to "New User", new_user_path %>

这将产生:

<a href="/users/new">New User</a>

如果您有动态路线,您可以定义这样的路线。

# config/routes.rb
Rails.application.routes.draw do
  get '/something/:id' => 'something#show', as: :something
end

然后在你的控制器中:

# app/controllers/something_controller.rb
class SomethingController < ApplicationController
  def show
    puts params[:id]
  end 
end

现在,如果您访问/something/this-is-awesome,您可以使用以下方法访问传递的值(在本例中为:this-is-awesome):params[:id](请参阅控制器代码)

于 2016-07-15T09:46:46.057 回答