这里的基本帮助,但我是Ruby On Rails的新手。 Windows 7上的Rails版本4.1.7。
我希望看到为链接创建不同的网址。代码和问题描述如下。
感谢您的帮助!
-T
控制器:
class DemoController < ApplicationController
layout false
def index
end
def hello
#render('hello')
@array = [1,2,3,4,5]
end
def other_hello
redirect_to(:controller => 'demo', :action => 'index')
end
def lynda
redirect_to("http://lynda.com")
end
end
routes.rb中:
Rails.application.routes.draw do
root "demo#index"
#get 'demo/index'
match ':controller(/:action(:id))', :via => :get
end
index.html.erb(&#39; /演示/索引&#39):
<h1>Demo#index</h1>
<p>Hello From Index</p>
<a href="/demo/hello">Hello Page 1</a><br />
<%= link_to( "Hello page 2c", {action: "hello" })%> <br />
<%= link_to("Hello with Parameters", {action:"hello", page: 5, id: 20}) %>
佣金路线:输出
前缀动词URI模式控制器#动作 root GET / demo #index GET /:controller(/:action(:id))(.:format):控制器#:动作
来自index.html的结果来源:
<h1>Demo#index</h1>
<p>Hello From Index</p>
<a href="/demo/hello">Hello Page 1</a><br />
<a href="/demo">Hello page 2c</a> <br />
<a href="/demo/hello20?page=5">Hello with Parameters</a>
问题:
我希望&#34; Hello页面2c&#34;链接到&#34; / demo / hello&#34;。
的href我也期待&#34; Hello with Parameters&#34;链接到&#34; / demo / hello / 20?page = 5&#34;
不确定要进一步了解什么。
我尝试了不同的格式化link_to的方法,但它们都给出了相同的结果。
EX:
<%= link_to( "Hello page 2c", {:action => "hello" })%> <br />
<%= link_to("Hello with Parameters", {:action => "hello", page: 5, id: 20}) %><br />
<%= link_to "Hello page 2c", action: "hello" %> <br />
<%= link_to "Hello with Parameters", action: "hello", page: 5, id: 20 %><br />
<%= link_to( "Hello page 2c", {controller: "demo", action: "hello" })%> <br />
<%= link_to("Hello with Parameters", {controller: "demo", action:"hello", page: 5, id: 20}) %><br />
答案 0 :(得分:1)
您正在以错误的方式使用rails路由。你不应该使用catch all route。为用户可用的每个控制器操作编写显式路由。您可以阅读有关路由here的更多信息。
答案 1 :(得分:-1)
尝试按如下方式编辑路线规则。
match ':controller(/:action(/:id))', :via => :get
由于