controller.rb - 服务器没有打开网站

时间:2014-05-25 10:21:21

标签: ruby-on-rails ruby-on-rails-4

我目前正在使用“使用Rails 4进行敏捷Web开发”教科书,试图学习一些东西(如果可能的话)。

通过构建一个非常简单的在线书店并使用Rails服务器对其进行测试,我大约有三分之一。

我打开了服务器并尝试访问我的应用程序但是store_controller.rb文件存在问题。

网页上写着:syntax error, unexpected end-of-input, expecting keyword_end

该文件的代码如下:

class StoreController < ApplicationController
  def index
    @products = Product.order(:title)
  end
end

感谢您的时间和想法!

Index.html.erb

<% if notice %>
  <p id="notice"><%= notice %></p>
<% end %>

<h1> Your Pragmatic Catalog</h1>
<% cache ['store', Product.latest] do %>
  <% @products.each do |product| %>
    <% cache ['entry', product] do %>
      <div class="entry">
        <%=image_tag(product.image_url) %>
        <h3><%= product.title %></h3>
        <%= sanitize(product.description) %>
        <div class="price_line">
          <span class="price"><%= number_to_currency(product.price) %></span>
          <%= button_to 'Add to Cart', line_items_path(product_id: product) %>
        </div>
      </div>
    <% end %>
  <% end %>
<% end %> 

1 个答案:

答案 0 :(得分:0)

好的伙计们,

我发现了问题。这让我发疯了。

我搞砸了store_controller.rb文件并继续重新加载浏览器。然后错误将我指向其他文件以进行整理。

简而言之,我被指向Models文件夹中的product.rb文件。我添加了一个额外的结束,这一切都很好,从那里我很高兴宣布。

如果您有兴趣,可以使用以下代码:

class Product < ActiveRecord::Base
    has_many :line_items

    before_destroy :ensure_not_referenced_by_any_line_item

validates :title, :description, :image_url, presence: true
validates :price, numericality: {greater_than_or_equal_to: 0.01}
validates :title, uniqueness: true
validates :image_url, allow_blank: true, format: {
with:   %r{\.(gif|jpg|png) \Z}i,
message: 'must be a URL for GIF, JPG or PNG image.'
}

def self.latest
Product.order(:updated_at).last

private

# ensure that there are no line items referencing this product
def ensure_not_referenced_by_any_line_item
    if line_items.empty
        return true
    else
    errors.add(:base, 'Line Items present')
    return false
    end
    end
    end
end