2016-07-15 14 views
0

私はc9クラウドIDEで開発中のレール4アプリを持っており、さまざまなモデルのエントリを表示するビューファイルがあります。
私の問題は、同じページの他のリンクが動作している間に、クリックするとファイル内の特定のリンクが失敗することです。私は特定のモデルはどれhttps://funin_teate_shikyu/new/518/edit
のように失敗している間、それはide.c9.io/dname/arubaito_boshu/491/editのように正しいURLを生成し、モデルのほとんどのためのリンクレール4のアプリケーションリンクが正しいURLを生成できない

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

を生成するために、私のアプリビューでこのコードを持っています大いに助けてください

答えて

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="https://stackoverflow.com/users/new">New User</a> 

あなたがダイナミックルートを持っている場合は、このようなルートを定義することができます。

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

あなたが/something/this-is-awesomeを訪問した場合、あなたが渡された値にアクセスすることができます:あなたのコントローラで、その後

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

(このケースである:この-ある-素晴らしい)を使用して:のparams [: (コントローラコードを参照)

+0

多くのシナリオに基づいてページに動的に表示されるエントリrは、私が言及したようにリソースパスをハードコードできません:( –

+0

あなたは確かに可能です。 :id'は変数です。ルート内に変数を持つルートだけを定義することができますファイルを呼び出し、lile: 'my_magic_path(:variable_1、:some_other_attribute)というパスを呼び出します。 – b1nary

関連する問題