2016-07-15 7 views
0

Ich habe eine Rails 4 App in der Entwicklung c9 Cloud IDE und ich habe eine View-Datei, die Einträge aus verschiedenen Modellen anzeigt.
Mein Problem ist, dass bestimmte Links in der Datei fehlschlagen, wenn sie angeklickt werden, während andere Links auf derselben Seite funktionieren. Ich habe diesen Code in meiner app Ansicht Links zu generierenRails 4 App Links nicht korrekt URL erzeugen

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

für die meisten Modelle es korrekte URL wie ide.c9.io/dname/arubaito_boshu/491/edit erzeugt, während bestimmte Modelle wie https://funin_teate_shikyu/new/518/edit
Any versagt Hilfe sehr geschätzt

Antwort

1

Was Sie tun, ist wirklich das Anti-Muster der Schienen Links. Um Links in Schienen zu erzeugen, verwenden Sie bitte die entsprechende ..._path Methode.

$ bin/rake routes 

Welche Sie eine Ausgabe wie diese geben würde:

Sie können Ihre Routen mit dem folgenden Befehl sehen

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 

Von dort können Sie Ihr Präfix nehmen kann für die path Methode.

Mit den Routen oben ist es ganz einfach:

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

Welche dies generieren:

<a href="https://stackoverflow.com/users/new">New User</a> 

Wenn Sie dynamische Routen haben Sie eine Route wie folgt definieren können.

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

dann in Ihrem Controller:

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

Nun, wenn Sie /something/this-is-awesome besuchen, können Sie den übergebenen Wert zugreifen (was in diesem Fall: das-ist-awesome) unter Verwendung von: params [: ID] (siehe Controller-Code)

+0

Die Einträge r dynamisch auf der Seite basierend auf vielen Szenarien angezeigt, so kann ich den Ressourcenpfad nicht wie beschrieben hart Code :( –

+0

Sie können sicher. Schauen Sie sich seine Beispiele, ' Beispiel: ID ist eine Variable, Sie können nur die Routen mit Variablen in Ihren Routen definieren Datei und rufe die Pfade auf lile: 'my_magic_path (: variable_1,: some_other_attribute) – b1nary