我是RefineryCMS和Rails的初学者。我制作了我的RefineryCMS应用程序,并且我正在尝试生成我的引擎,如指南中所述。 我正在运行这个命令:
rails g refinery:engine article title:string reference:string file:resource
在我进入管理部分的视图中,没有按钮可以浏览文件资源或任何预期的文件资源,只需一个框来引入文本。这是部分形式的一部分:
<div class='field'>
<%= f.label :file_id -%>
<%= f.text_field :file_id -%>
</div>
我必须按照RefineryCMS Engines Error: did not have a valid gemspec
更改引擎中的gemspec文件这是我的gemfile的一部分:
ruby '2.1.1'
gem 'rails', '3.2.17'
gem 'pg'
# Refinery CMS
gem 'refinerycms', '~> 2.1.0'
# Optionally, specify additional Refinery CMS Extensions here:
gem 'refinerycms-acts-as-indexed', '~> 1.0.0'
# Refinery's news engine allows you to post updates to the news section of your website.
gem 'refinerycms-news', '~> 2.1.0'
gem 'refinerycms-articles', :path => 'vendor/extensions'
我正在使用Ubuntu 13.10。
这是一个错误还是我做错了什么?如何获得浏览文件的按钮?
答案 0 :(得分:2)
好的,我已经弄明白了如何解决这个问题,感谢另外一个问题:https://english.stackexchange.com/questions/11481
问题是生成器没有创建正确的视图和模型。您必须手动进行此修改。
首先在视图中 _form.html.erb:
<div class='field'>
<%= f.label :file_id -%>
<%= render :partial => "/refinery/admin/resource_picker", :locals =>
{
:f => f,
:field => :file_id,
:resource => @article.file} %>
</div>
现在将此行添加到模型 article.rb :
belongs_to :file, :class_name=>'Resource'
当然你也必须修改节目视图。例如:
<section>
<h1>File</h1>
<p>
<%= link_to("Download", @article.file.url) if @article.file %>
</p>
</section>
如果发电机会自动完成所有操作会很好,但是这样你就可以使用它。