gpt4 book ai didi

ruby - 从 sinatra 和 ruby​​ 的下拉框中传递值

转载 作者:行者123 更新时间:2023-12-03 19:31:33 25 4
gpt4 key购买 nike

看起来无论出于何种原因,sinatra 都无法识别我使用的“代码”是我的获取“/库”我是否尝试将其放入字符串但无济于事。去掉引号会使它们成为未初始化的方法。非常感谢您的帮助!

  require 'sinatra'
require 'sinatra/reloader'
require 'data_mapper'

enable :sessions

DataMapper.setup(:default, "sqlite://#{Dir.pwd}/project3.db")

class Code
include DataMapper::Resource

property :id, Serial
property :language, String
property :purpose, String
property :code_snippet, Text

end

DataMapper.auto_upgrade!

get "/snippet" do
erb :snippet, layout: :project3_template
end

post "/snippet" do
Code.create params
redirect to ("/library")
end

get "/library" do
@html = Code.all(language: HTML)
@css = Code.all(language: CSS)
@javascript = Code.all(language: Javascript)
@ruby = Code.all(language: Ruby)
erb :library, layout: :project3_template
end

get "/library/:id" do
@code = Code.get :id
erb :code_id, layout: :project3_template
end

我的erb页面
<h1>Code Library</h1>

<h2>HTML</h2>
<%= @html.each do |code| %>
<a href="/library/<%= code.id %>"><%= code.purpose %></a>
<hr>
<%= end %>

<h2>CSS</h2>
<%= @css.each do |code| %>
<a href="/library/<%= code.id %>"><%= code.purpose %></a>
<hr>
<%= end %>

<h2>Javascript</h2>
<%= @javascript.each do |code| %>
<a href="/library/<%= code.id %>"><%= code.purpose %></a>
<hr>
<%= end %>

<h2>Ruby</h2>
<%= @ruby.each do |code| %>
<a href="/library/<%= code.id %>"><%= code.purpose %></a>
<hr>
<%= end %>

最佳答案

尝试像这样传递 View

erb :project3_template

其中 project3_template 将是您的 View 文件夹中的 project3_template.erb

您的 @ 类变量应该在 View 中可见,您可以像下面这样传递常规变量, :name在此示例中,如果客户端通过 GET 或 POST 传递,这些都存在于 params 数组中。您还可以传递整个 params 数组。
erb :project3_template, :locals => {:name => params[:name]}

https://github.com/sinatra/sinatra#accessing-variables-in-templates

你的观点有一个严重的问题:使用 <%%><%=variable%> <%%>用于嵌入必须执行的 Ruby 代码 <%=variable%>用于嵌入变量的内容。
在您的情况下,您需要执行以下操作
<%@html.each do |code|%>
<a href="/library/<%= code.id %>"><%= code.purpose %></a>
<hr>
<%end%>

关于ruby - 从 sinatra 和 ruby​​ 的下拉框中传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40224512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com