我正在使用refinery cms并想要覆盖(添加方法)到他们的页面类.我已尝试在initializers目录中的文件中执行Page.class_eval,但它似乎只在第一页加载时起作用.之后,我添加的方法消失了.任何想法如何做到这一点?
我已经在我的炼油厂应用程序中添加了一个带有图像字段的自定义引擎.这一切都很好,在管理区域我可以添加图像,等等.
我有一个关于将所述图像添加到视图中的问题.目前我在视图中有以下代码:
<a href="<%= project.picture.url %>"><img src="<%= project.picture.url %>" alt="Image description" /></a>
Run Code Online (Sandbox Code Playgroud)
这很好地显示了我的图像(虽然它可能不是最好的方法 - 提示欢迎)但我想知道如何访问该图像的缩略图.我注意到在炼油厂的其他区域,您可以在图像对象上调用缩略图方法.
<%= image_fu image, ::Image.user_image_sizes[thumbnail.to_sym],
:class => "brown_border",
:class => "current_picked_image" %>
Run Code Online (Sandbox Code Playgroud)
请有人指导我完成如何实现这一目标的步骤.上面的代码片段来自image_picker页面代码.作为rails的新手我不知道如何在我自己的页面中实现这一点.
在此先感谢您的帮助!
刚开始使用RefineryCMS,抱歉新手问题.它本地运行良好,幸运地部署在Heroku Cedar堆栈上.创建了一个名为Home的页面./ pages/home响应很好.
的routes.rb
root :to => 'pages#home'
Run Code Online (Sandbox Code Playgroud)
并在localhost:3000上工作,但在Heroku上它会出错.
该应用程序在这里:
http://refkocedar.herokuapp.com/home的工作原理 http://refkocedar.herokuapp.com/不起作用
如何在Heroku上将主页设置为root?感谢帮助!
$ heroku日志
2012-04-03T02:19:57+00:00 heroku[router]: GET refkocedar.herokuapp.com/assets/application-ddce3db0fc667014faf95d85d24c71d4.js dyno=web.1 queue=0 wait=0ms service=4ms status=304 bytes=0
2012-04-03T02:19:58+00:00 heroku[router]: GET refkocedar.herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=4ms status=304 bytes=0
2012-04-03T02:19:58+00:00 app[web.1]: cache: [GET /favicon.ico] miss
2012-04-03T02:20:04+00:00 app[web.1]:
2012-04-03T02:20:04+00:00 app[web.1]:
2012-04-03T02:20:04+00:00 app[web.1]: Started GET "/" for 80.98.142.244 at 2012-04-03 02:20:04 +0000
2012-04-03T02:20:04+00:00 app[web.1]: cache: [GET /] miss
2012-04-03T02:20:04+00:00 app[web.1]: cache: [GET /] miss
2012-04-03T02:20:04+00:00 app[web.1]: cache: [GET /] miss
Run Code Online (Sandbox Code Playgroud) 我想删除RefineryCMS中每个页面上的side_body部分.
该指南建议您可以通过进入和更改设置来更改页面部分config/initializers/refinery/pages.rb:
所以我改变了:
config.default_parts = [“Body”, “Side Body”]
Run Code Online (Sandbox Code Playgroud)
至:
config.default_parts = [“Body”]
Run Code Online (Sandbox Code Playgroud)
我已经重新启动了我的服务器,但我的side_body部分仍然出现.可以移除side_body吗?
我知道很多Ruby用户都在使用Jekyll,但我想知道RefineryCMS带来的好处是什么?
有人可以突出每个人的差异和利弊.
这有点奇怪,但我想在同一个域上提供多个网站.如果可能的话,我们希望避免使用子域名来保持用户的网址简单 - 不需要他们知道它是两个独立的应用程序.这纯粹是为了保持代码库分开.有任何想法吗?
例如:
Rails App 1(Refinery CMS)服务:
Rails App 2(我们真正的应用程序)服务:
我们使用ruby 1.9.2,ruby on rails,炼油厂cms,apache和乘客.
我正在尝试创建一个用户可以输入电子邮件的表单,它会将其保存到数据库中.我希望这个表单在每个页面的页脚中.
我通过rails scaffolding生成了NewsletterSignup.
现在我在/app/views/refinery/_footer.html.erb中有这个代码:
<%= form_for(@newsletter_signup) do |f| %>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我尝试加载页面时,我收到此错误:
NoMethodError in Refinery/pages#home
Showing /Users/tomcaflisch/Sites/PersonalTrainingKT/app/views/refinery/_form.html.erb where line #1 raised:
undefined method `newsletter_signups_path' for #<#<Class:0x007fb84c769ba0>:0x007fb84c08d110>
Run Code Online (Sandbox Code Playgroud)
为什么方法未定义?如果我运行rake路线,我可以看到它存在:
newsletter_signups GET /newsletter_signups(.:format) newsletter_signups#index
POST /newsletter_signups(.:format) newsletter_signups#create
new_newsletter_signup GET /newsletter_signups/new(.:format) newsletter_signups#new
edit_newsletter_signup GET /newsletter_signups/:id/edit(.:format) newsletter_signups#edit
newsletter_signup GET /newsletter_signups/:id(.:format) newsletter_signups#show
PUT /newsletter_signups/:id(.:format) newsletter_signups#update
DELETE /newsletter_signups/:id(.:format) newsletter_signups#destroy
Run Code Online (Sandbox Code Playgroud)
的routes.rb
PersonalTrainingKT::Application.routes.draw do
resources :newsletter_signups
# This line mounts …Run Code Online (Sandbox Code Playgroud) 我经历了安装refinerycms-news引擎的过程;
我将refinerycms-news添加到我的gemfile中.
gem "refinerycms-news", '~> 2.0.0'
Run Code Online (Sandbox Code Playgroud)
然后跑了
bundle install
rails generate refinery:news
rake db:migrate
rake db:seed
Run Code Online (Sandbox Code Playgroud)
然后重新启动服务器.
刷新后,"新闻"标签显示在我的后端,但是当我在前端查看"http:// localhost:3000/news"页面时,我收到此错误.
Routing Error
No route matches {:locale=>:en, :controller=>"refinery/news/items"}
Try running rake routes for more information on available routes.
Run Code Online (Sandbox Code Playgroud)
我尝试安装refinerycms-queries gem之后也发生了同样的事情.
知道我做错了什么吗?
我已经做到了:
MyApp::Application.routes.draw do
get 'admin', :to => redirect('/refinery')
mount Refinery::Core::Engine, :at => '/'
end
Run Code Online (Sandbox Code Playgroud)
它使我可以为用户提供一个友好的URL,这对他们来说很有意义,但是路径仍更改为localhost:3000/refinery。
那么,我该怎么做呢?也许没有重定向?
refinerycms ×10
routes ×2
ruby ×2
apache ×1
cedar ×1
compass-sass ×1
heroku ×1
image ×1
jekyll ×1
passenger ×1
rubygems ×1
thumbnails ×1