我需要为客户端创建一个Web应用程序,其中一个要求是每当触发事件时,Windows XP/7中应该有一些桌面通知告诉他们事件.与将新文件添加到Dropbox中的文件夹时弹出的气球类似.
我正在使用Rails作为Web应用程序,但从未进行任何桌面开发.我应该看什么?
我正在使用Carrierwave,Fog将图像上传到S3.
问题是,当我去编辑记录时,"文件"和"照片"字段会自动变为空白.因此,如果我想保留记录中的图像或文件,我必须重新上传它.
否则,会发生什么是上传的文件/图像消失了.我甚至不确定它是否从S3中删除,但与我在db中的记录的关联消失了.
这是_form.html.erb
我的Post
模型的SimpleForm 部分:
<%= simple_form_for(@post, html: {class: 'form-horizontal' }) do |f| %>
<%= f.error_notification %>
<%= f.input_field :title, placeholder: "Enter Title" %>
<%= f.input_field :body, id: "body-field", placeholder: "Provide all the facts." %>
<%= f.input_field :photo %>
<%= f.input_field :file %>
<%= f.button :submit, class: "btn btn-primary pull-left" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是我的 PhotoUploader
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :fog
include CarrierWave::MimeTypes
process :set_content_type
def store_dir
"images/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :main_thumb_mobile do
process …
Run Code Online (Sandbox Code Playgroud) 新手在这里...我正在经历,显然,一个旧的铁路教程.
要创建表单,他们有以下代码:
<%= start_form_tag(:action => 'create')%>
<%= text_field(:album, :title) %><br />
<%= text_field(:album, :artist) %><br />
<%= text_field(:album, :genre) %><br />
<%= datetime_select(:album, :release_date) %><br />
<%= submit_tag("Create") %>
<%= end_form_tag %>
Run Code Online (Sandbox Code Playgroud)
这段代码的Rails3语法是什么?
谢谢.
也许这甚至可以成为社区Wiki,但我希望详细描述控制器的工作原理 - 或者更确切地说,我如何能够让它做我想做的事情.
我理解MVC的一般结构以及模型如何存储db结构,并且控制器与db交互并将信息传递给视图.
但是,我(在基础层面上)对如何使用我的控制器完成简单任务感到困惑.我知道如果我想为模型/对象创建一个新记录,我只是object = Object.new(:name => "Object Name")
在Rails控制台中.
但是我怎么能在控制器的CRUD元素中做到这一点,为什么呢?
请使用一个简单的例子 - 例如向用户显示他们的银行账户余额(我知道有很多复杂性,但为了这个解释而忽略它们).该模型的外观如何(仅包括:名称,地址,交易类型(存款/取款),余额).
视图会是什么样子?控制器会是什么样子?您做出的任何选择(如使用表格)请解释.为什么要使用表单,而不是下拉菜单和(通俗地说)表单或下拉菜单如何与控制器交互?如何将数据捕获到数据库中,为什么我这样做呢?
我知道这听起来好像很多要问,但我已经做了RailsTutorial.org,看了很多Railscasts,读了Rails指南,并阅读其他许多教程和仍然在我的方式了解一些基本的Rails差距作品,以及为什么.
提前致谢.
我试图显示此输出,作为日期:
1296524384
Run Code Online (Sandbox Code Playgroud)
但是当我打电话.to_date
给它时,我收到了这个错误:
undefined method `to_date' for 1296524384:Fixnum
Run Code Online (Sandbox Code Playgroud) 所以,我有3种型号:category
,product
,category_products
。
这是我的 category.rb
attr_accessible :name
has_many :category_products do
def with_products
includes(:product)
end
end
has_many :products, :through => :category_products
Run Code Online (Sandbox Code Playgroud)
这是我的 product.rb
attr_accessible :name, :description, :price, :vendor_id, :image, :category_ids
belongs_to :vendor
has_many :category_products do
def with_categories
includes(:category)
end
end
has_many :categories, :through => :category_products
Run Code Online (Sandbox Code Playgroud)
这是我的 category_product.rb
attr_accessible :product_id, :category_id, :purchases_count
belongs_to :product
belongs_to :category
validates_uniqueness_of :product_id, :scope => :category_id
Run Code Online (Sandbox Code Playgroud)
这是我的 routes.rb
mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'
resources :categories
resources :vendors do
resources :products
end …
Run Code Online (Sandbox Code Playgroud) 我想使用simple_form生成一个取消按钮....但不太确定如何做到这一点.
<%= f.button :submit, :class => "btn btn-warning btn-small", :label => "Save Changes" %>
<%= f.button :cancel, :class => "btn btn-inverse btn-small", :label => "Cancel" %>
Run Code Online (Sandbox Code Playgroud)
但取消按钮不起作用.
我怎么做到的?
所以我的表单部分加载到我的div id="secondary"
,在第一页加载时隐藏.
当用户点击带有被调用类的按钮时toggleSidebar
,_form.html.erb
会显示该按钮.
update
当用户没有像这样登录时,我已覆盖部分以显示新表单(即使被按下):
<%= simple_form_for(Post.new, html: {class: 'form-horizontal' }) do |f| %>
Run Code Online (Sandbox Code Playgroud)
与看起来像这样的常规版本相反,并且包含在if
同一部分的语句中:
<% if current_user and current_user.has_any_role? :editor, :admin %>
<%= simple_form_for(@post, html: {class: 'form-horizontal' }) do |f| %>
Run Code Online (Sandbox Code Playgroud)
真正的问题是在我看来,当有人去的时候Update
,这就是当用户注销时会发生的事情:
<%= link_to "Update", "#", class: "togglesidebar" %>
Run Code Online (Sandbox Code Playgroud)
这是完美的,它执行CSS并完美地显示空表单部分.
但是,当用户登录时,我希望它parent_id: @post
在执行侧边栏切换时发送参数.
这是它在普通new_post_path
视图中的外观(即非侧边栏新帖子视图):
<% if current_user %>
<%= link_to "Update", new_post_path(parent_id: @post) %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这就是我的PostController#New
样子:
def new
@post = Post.new(parent_id: params[:parent_id]) …
Run Code Online (Sandbox Code Playgroud) 所以IntroJS的工作data-intro
和data-step
属性.
所以例如我的徽标看起来像这样:
<h1 id="logo" data-step="1" data-intro="Welcome to MyApp, where you can start creating an album for generations! Let us help you get started.">
Run Code Online (Sandbox Code Playgroud)
但对于第3步,它是在一个元素上,当按下时,下一步应该是在按下步骤3中的元素时出现的模态.
我有这个,因为我Step 4
不起作用:
<div class="popup" id="add-images-step-1" data-step="4" data-intro="GETS TO UPLOADING">
Run Code Online (Sandbox Code Playgroud)
现在,当你到达Step 3
并按下时next
,它会给你一个空白的盒子,它在屏幕外.
如何让它专注于该模式?
amazon-s3 ×1
carrierwave ×1
css ×1
fog ×1
html ×1
intro.js ×1
javascript ×1
jquery ×1
modal-dialog ×1
popup ×1
rails-admin ×1
ruby ×1
simple-form ×1
windows ×1