我有一个像example.com/test/THIS_TEXT
这样的网址。现在,当用户访问我的URL时,我只想使用" THIS_TEXT"部分在其路由的html.erb视图内部。
我知道它不再是MVC,但我试图通过使该过程独立于模型和数据库来避免一些开销。有没有一种简单的方法可以直接将URL参数传递给Rails中查看?
更新:
部分代码:
的routes.rb
get "/d/:token", to: "games#show"
games_controller.rb
class GamesController < ApplicationController
before_action :set_game, only: [ :edit, :update, :destroy]
def show
@text = params["token"]
end
#other scaffold stuff...
end
show.html.erb
Your entered text is <%= @text %>
错误
ActionController :: GamesMtroller中的ParameterMissing#show
param丢失或值为空
答案 0 :(得分:2)
您如何在THIS_TEXT
文件中声明routes.rb
?
如果if声明为
get '/test/:this_text'
(请注意:
)
然后您可以在控制器中以params[:this_text]
的形式访问它。
这样:
# in routes.rb
get '/test/:test_text', to: 'tests#show_text'
# in tests_controller.rb
class TestsController < ApplicationController
def show_text
@text = params[:test_text]
end
end
希望有所帮助!
答案 1 :(得分:1)
您可以访问params hash,执行以下操作:
<%= params[:name_of_param] %>
param的名称与您在routes.rb中的名称相同
答案 2 :(得分:0)
在您的控制器中:
@users_param = params[:users_param]
在您看来:
任何不安全的字符都应该自动转义,但可能会很长。这不会触及模型或数据库。它也不是特别反MVC,它恰好不使用该模型。打破MVC会做类似于从.html.erb文件执行数据库查询的事情。