Ruby - Sinatra:访问&#34;某事&#34;在<p>元素</p>中

时间:2014-09-05 15:31:38

标签: ruby sinatra erb

我的server.rb中有一系列课程,课程包含名称,辅导员和一系列信息。 然后是一个列出所有这些消息的.erb。目前我抓住课程[0]并列出其中的消息 - 但我想给每个可用的课程显示自己的消息。在下面的.erb中列出了所有&#34;订阅的&#34;课程[atm just [0] - 同样的问题)。

Soo,有没有办法,我可以从.erb中的p中获取字符串,以便在server.rb中搜索?

server.rb

post "/home" do
  search_item = params[:course]
  k = 0
    $courses.each do |course|
        if (course.course == search_item)
          $course_focused = $courses[k]     
            break
        else    
          k += 1
        end 
    end
end

.erb(摘录)

<% td = 0%>
    <% $verified_courses.each do |elem| %>
        <% if td < 3%>
            <td>
            <!-- <form action="/home" method="post"> -->
            <a href="/course">
            <div id="course_div">
            <p name="course">
            <%= elem.course %>
            </p>
            <br>
            <p id="tutor">
            <%= elem.tutor %>
            </p>
            </div>
            </a>
            <!-- </form> -->
            </td>
            <%  td += 1 %>
            <% elsif td == 3 %>
            </tr>
            .
            .
            .

我正在寻找解决方案几个小时,但无法找到任何东西。希望,你能理解这一点。多年来,Haven没有书面或英语口语......


编辑:

course.rb

class Course
attr_accessor :course, :tutor, :key, :semester, :study_path

def initialize
    @messages = []
end

def addmessage (message)
    @messages.push message
end

def delmessage (todelete)
    i = 0
    while i < @messages.length
        if (todelete.date == message.date && todelete.header == message.header)
            @messages - [i]
            break
        else
            i += 1
        end
    end
end

1 个答案:

答案 0 :(得分:0)

好吧,我明白了。 可能不是最好的解决方案,但它的工作正常。

我所做的就是用提交按钮替换course-div:

<form id="show" action="/course" method="get">
    <button type="submit" id="course_div" name="search_item" value="<%= elem.course %>">
    <%= elem.course %> 
    <br>
    <p id="tutor"><%= elem.tutor %></p>
    </button>
</form>

然后在server.rb中抓住params [:search_item]。