【问题标题】:Passing parameters to erb view将参数传递给erb视图
【发布时间】:2011-10-07 22:47:22
【问题描述】:

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

例如,我可以这样做:

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

如何将:name 传递给视图?

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

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

谢谢!

【问题讨论】:

    标签: ruby sinatra erb


    【解决方案1】:

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

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

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

    Hello <%= name %>
    

    (在 sinatra 1.2.6 上测试)

    【讨论】:

      【解决方案2】:

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

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

      然后,我可以使用变量@name

      访问 hello.erb 中的:name

      【讨论】:

      【解决方案3】:
      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] %>
      

      【讨论】:

        猜你喜欢
        • 2012-09-24
        • 2011-06-27
        • 1970-01-01
        • 2018-01-08
        • 2011-06-16
        • 1970-01-01
        • 2012-07-09
        • 2013-07-17
        • 2011-12-09
        相关资源
        最近更新 更多