Passing parameters to erb view

后端 未结 3 852
孤街浪徒
孤街浪徒 2020-12-25 10:39

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]}!\"
en         


        
相关标签:
3条回答
  • 2020-12-25 10:50
    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] %>
    
    0 讨论(0)
  • 2020-12-25 11:00

    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)

    0 讨论(0)
  • 2020-12-25 11:14

    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

    0 讨论(0)
提交回复
热议问题