【问题标题】:Rails - view a picture which represents data in the databaseRails - 查看代表数据库中数据的图片
【发布时间】:2011-07-17 09:28:41
【问题描述】:

我正在寻找一些想法如何让星星像这个例子一样:

现在,我有一个表格,其中有一列代表黑色星星,一列代表灰色星星。(例如,在“Hüllenkontrolle”中,“2”代表 2 个黑色星星,“4”代表 4 个灰色星星)。所以我想到了根据数据库中的数字显示另一张图片的东西(1 = 1 星,2 = 2 星,3 = 3 星,4 = 4 星......)

我不知道要在互联网上搜索什么,也不知道如何意识到不会查看数字,而是查看一些星星。有人知道如何实现吗?


关于我的数据库模型的一些信息:http://img6.imagebanana.com/img/kwenevyz/beziehungen.png

  • 所有数据都在员工的 html.erb 中查看。
  • 黑色星代表 current_qualification 表(列“qualificationstars”),灰色星代表预期资格表(列“qualificationstars”)。 现在它在 html.erb 中是这样写的:

<% @employee.position.expected_qualifications.each do |expected_qualification| %>

<%= expected_qualification.qualificationstars %>

<%end%>


好消息!这似乎有效

<% @employee.position.skills.zip(@employee.position.expected_qualifications, @employee.current_qualifications).each do |skill, expected_qualification, current_qualification| %>
    <p>
    <% (current_qualification.istqualifikation).times do %>
            <%= image_tag("black.png") %>
    <% end %>
    <% (expected_qualification.sollqualifikation - current_qualification.istqualifikation).times do %>  
        <%= image_tag("grey.png") %>
    <% end %>
    </p>
<% end %>

这就是它现在在浏览器中的样子:

【问题讨论】:

    标签: ruby-on-rails actionview


    【解决方案1】:

    如果您有一个黑色和灰色星星的图像文件,请在您的视图中尝试这样的操作:

    <% @employee.position.expected_qualifications.each do |expected_qualification| %>
    
    <% @employee.current_qualification.qualificationstars.times do %>
    <%= image_tag("black_star.png") %>
    <% end %>
    
    <% [expected_qualification.qualificationstars - @employee.current_qualification.qualificationstars].times do %>
    <%= image_tag("grey_star.png")  %>
    <% end %>
    
    <% end %>
    

    编辑:

    图像进入“public/images”(Rails

    编辑 2:使用您的型号名称。

    (我建议在您的数据库中将“qualificationstars”重命名为“stars”。qualification.qualificationstars 是多余的,而且有点麻烦。)

    【讨论】:

    • @Thilo:哦,哇,感谢您的意见。现在还有其他 2 个问题:问题 1: 将黑色和灰色星星的图片放在哪里,以便 rails 可以找到它?在与我的 html.erb 相同的文件夹中? 问题 2: 好的,所以@model 是我的桌子,对吧?我用关于我的模型的信息编辑了我的第一篇文章,因为它相当复杂。现在我只想查看示例中的黑色星星:&lt;% @employee.position.expected_qualifications.each do |expected_qualification| %&gt; &lt;p&gt; &lt;%= expected_qualification.qualificationstars.times { image_tag("black_star.png") } %&gt; &lt;%end%&gt;
    • 至少没有错误,但它也没有显示任何图片——只有数字。
    • 顺便说一句,@model 不在你的桌子上。它是具有 stars 属性的类实例的占位符,因为我不知道您的类名。因此,在您的情况下,分别为 @employee.position.expected_qualification 和 @employee.current_qualification。
    • 我的错。修复了块,试试这个版本。如果有人知道 3 行块的单行版本,请加入。
    • 非常感谢您的努力!是的,我想我下次会将“qualificationstars”重命名为“stars”,你是对的。我实现了你的代码,它非常合乎逻辑(对我来说),但是 rails 给了我一个noMethodError:#<0x2e3e5b8>
    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多