Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Money rails gem-如何超越默认货币并显示小数点_Ruby On Rails_Ruby_Rubygems_Money Rails - Fatal编程技术网

Ruby on rails Money rails gem-如何超越默认货币并显示小数点

Ruby on rails Money rails gem-如何超越默认货币并显示小数点,ruby-on-rails,ruby,rubygems,money-rails,Ruby On Rails,Ruby,Rubygems,Money Rails,我第一次将rails money gem用于我正在构建的事件应用程序。我有一个事件模型,它有一个整型的“price”列。我希望用户能够输入他们想要的(在合理范围内)活动费用的任何变化-例如15.99英镑、15.99英镑等,但节目输出需要看起来整洁和适当(15.99英镑)。目前,我的输入字段允许我在表单上输入小数点,但在显示页面上它无法识别(15.99英镑仅显示为15英镑)。此外,我有一个货币选择字段,其中有3种主要货币作为选项.%/$,但无论我在显示页面上做什么选择,它都显示为$,正如上面的示例

我第一次将rails money gem用于我正在构建的事件应用程序。我有一个事件模型,它有一个整型的“price”列。我希望用户能够输入他们想要的(在合理范围内)活动费用的任何变化-例如15.99英镑、15.99英镑等,但节目输出需要看起来整洁和适当(15.99英镑)。目前,我的输入字段允许我在表单上输入小数点,但在显示页面上它无法识别(15.99英镑仅显示为15英镑)。此外,我有一个货币选择字段,其中有3种主要货币作为选项.%/$,但无论我在显示页面上做什么选择,它都显示为$,正如上面的示例所示,15.99显示为$15。我该如何解决这个问题

这是我目前掌握的密码-

Event.rb

 class Event < ActiveRecord::Base

belongs_to :category
belongs_to :user
has_many :bookings


has_attached_file :image, styles: { medium: "300x300>" }
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/


monetize :price, with_model_currency: :currency 



end
_form.html.erb

<%= f.collection_select :category_id, Category.all, :id, :name, {prompt: "Choose a category"} %>
<!-- The above code loop assigns a category_id to each event -->

<%= f.input :image, as: :file, label: 'Image' %>
<%= f.input :title, label: 'Event Title' %>
<label>Location</label><%= f.text_field :location, id: 'geocomplete' %></br>
<label>Date</label><%= f.text_field :date, label: 'Date', id: 'datepicker' %>
<%= f.input :time, label: 'Time' %>
<%= f.input :description, label: 'Description' %>
<label>Number of spaces available</label><%= f.text_field :number_of_spaces, label: 'Number of spaces' %>
<%= f.input :is_free, label: 'Tick box if Event is free of charge' %>
<%= f.input :currency, :collection => [['£GBP - British Pounds',1],['$USD - US Dollars',2],['€EUR - Euros',3]] %>
<%= f.input :price, label: 'Cost per person (leave blank if free of charge)' %>
<%= f.input :organised_by, label: 'Organised by' %>
<%= f.input :url, label: "Link to Organiser site" %>

<%= f.button :submit, label: 'Submit' %>

<% end %>   

位置
日期 可用空间数 [['英镑-英镑',1],'美元-美元',2],'欧元-欧元',3]]>
show.html.erb

<%= image_tag @event.image.url %>

<h1><%= @event.title %></h1>
<p>Location </p>
<p><%= @event.location %></p>
<p>Date</p>
<p><%= @event.date.strftime('%A, %d %b %Y') %></p>
<p>Time</p>
<p><%= @event.time.strftime('%l:%M %p') %></p>
<!-- above expresses date and time as per UK expectations -->
<p>More details</p>
<p><%= @event.description %></p>
<p>Number of Spaces available</p>
 <p><%= @event.number_of_spaces %></p>
<% if @event.is_free? %>
  <p>This is a free event</p>
<% else %>
<p>Cost per person</p>
<p><%= humanized_money_with_symbol @event.price %></p>
<% end %>
<p>Organiser</p>
<p><%= @event.organised_by %></p>
<p>Organiser Profile</p>
<button><%= link_to "Profile", user_path(@event.user) %></button>
<p>Link to Organiser site</p>
<button><%= link_to "Organiser site", @event.url %></button>

<p>Submitted by</p> 
<p><%= @event.user.name %></p>


<% if user_signed_in? and current_user == @event.user %>
<%= link_to "Edit", edit_event_path %>
<%= link_to "Delete", event_path, method: :delete, data: { confirm: "Are you   sure?"} %>
<%= link_to "Back", root_path %>
<% else %>
<%= link_to "Back", root_path %>
<%= link_to "Book the Event", new_event_booking_path(@event) %>
<% end %>

位置

日期

时间

更多细节

可用空间数

这是一项免费活动

人均成本

组织者

组织者简介

链接至主办方网站

提交人


rails money自述文件建议处理金钱的对象(在本例中为“价格”)可以通过迁移“货币化”。在gem助手开始工作之前,这是必须的吗?

我相信money gem可以让您覆盖模型中的默认值。由于您希望能够选择货币,此宝石可能不适合您的目的。听起来您需要向模型中添加一个currency方法,以允许用户选择事件货币。这应该是一个简单的迁移。

您好,我已经整理好了货币选项,用户可以从三个选项中选择一个,但在显示页面上它将返回默认值($)。
<%= image_tag @event.image.url %>

<h1><%= @event.title %></h1>
<p>Location </p>
<p><%= @event.location %></p>
<p>Date</p>
<p><%= @event.date.strftime('%A, %d %b %Y') %></p>
<p>Time</p>
<p><%= @event.time.strftime('%l:%M %p') %></p>
<!-- above expresses date and time as per UK expectations -->
<p>More details</p>
<p><%= @event.description %></p>
<p>Number of Spaces available</p>
 <p><%= @event.number_of_spaces %></p>
<% if @event.is_free? %>
  <p>This is a free event</p>
<% else %>
<p>Cost per person</p>
<p><%= humanized_money_with_symbol @event.price %></p>
<% end %>
<p>Organiser</p>
<p><%= @event.organised_by %></p>
<p>Organiser Profile</p>
<button><%= link_to "Profile", user_path(@event.user) %></button>
<p>Link to Organiser site</p>
<button><%= link_to "Organiser site", @event.url %></button>

<p>Submitted by</p> 
<p><%= @event.user.name %></p>


<% if user_signed_in? and current_user == @event.user %>
<%= link_to "Edit", edit_event_path %>
<%= link_to "Delete", event_path, method: :delete, data: { confirm: "Are you   sure?"} %>
<%= link_to "Back", root_path %>
<% else %>
<%= link_to "Back", root_path %>
<%= link_to "Book the Event", new_event_booking_path(@event) %>
<% end %>