0

c9 クラウド IDE で開発中の Rails 4 アプリがあり、さまざまなモデルのエントリを表示するビュー ファイルがあります。
私の問題は、同じページ上の他のリンクが機能しているように見えても、ファイル内の特定のリンクをクリックすると失敗することです。リンクを生成するために、アプリビューにこのコードがあります

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

ほとんどのモデルでは、ide.c9.io/dname/arubaito_boshu/491/edit のような正しい URL を生成しますが、特定のモデルはhttps://funin_teate_shikyu/new/518/edit
のように失敗します。

4

1 に答える 1

1

あなたがやっていることは、実際にはレールリンクのアンチパターンです。レールでリンクを生成するには、対応..._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 に答える