将参数传递给 erb 视图

发布于 2024-11-25 04:25:38 字数 292 浏览 5 评论 0原文

我正在尝试使用 Ruby 和 Sinatra 将参数传递给 erb 视图。

例如,我可以这样做:

get '/hello/:name' do
  "Hello #{params[:name]}!"
end

如何将 :name 传递给视图?

get '/hello/:name' do
  erb :hello
end

如何读取 view/hello.erb 中的参数?

谢谢!

I'm trying to pass parameters to an erb view using Ruby and Sinatra.

For example, I can do:

get '/hello/:name' do
  "Hello #{params[:name]}!"
end

How do I pass :name to the view?

get '/hello/:name' do
  erb :hello
end

And how do I read the parameters inside view/hello.erb?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

稳稳的幸福 2024-12-02 04:25:38

只需将 :locals 传递给路由中的 erb() 即可:

get '/hello/:name' do
    erb :hello, :locals => {:name => params[:name]}
end

然后在views/hello.erb 中使用它:(

Hello <%= name %>

在 sinatra 1.2.6 上测试)

just pass the :locals to the erb() in your routes:

get '/hello/:name' do
    erb :hello, :locals => {:name => params[:name]}
end

and then just use it in the views/hello.erb:

Hello <%= name %>

(tested on sinatra 1.2.6)

巴黎夜雨 2024-12-02 04:25:38

不确定这是否是最好的方法,但它有效:

get '/hello/:name' do
  @name = params[:name]
  erb :hello
end

然后,我可以使用变量 @name 访问 hello.erb 中的 :name

Not sure if this is the best way, but it worked:

get '/hello/:name' do
  @name = params[:name]
  erb :hello
end

Then, I can access :name in hello.erb using the variable @name

圈圈圆圆圈圈 2024-12-02 04:25:38
get '/hello/:name' do
  "Hello #{params[:name]}!"
end

您不能在路线中执行此操作。

您想在控制器中设置参数。

app/controllers/some_controller.rb

def index
    params[:name] = "Codeglot"
    params[:name] = "iPhone"    
    params[:name] = "Mac Book"      
end

app/views/index.html.erb

<%= params[:name] %>
<%= params[:phone] %>
<%= params[:computer] %>
get '/hello/:name' do
  "Hello #{params[:name]}!"
end

You cannot do this in routes.

You want to set the params in the controller.

app/controllers/some_controller.rb

def index
    params[:name] = "Codeglot"
    params[:name] = "iPhone"    
    params[:name] = "Mac Book"      
end

app/views/index.html.erb

<%= params[:name] %>
<%= params[:phone] %>
<%= params[:computer] %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文