Tag: ruby on rails 3

如何接受以逗号分隔的列表来为模型构建标签?

由于当前应用程序的灵活性有限,我正在关闭acts_as_taggable_on。 相反,我正在从头开始构建我的标签作为他们自己的模型。 但是,我已经错过了表单的“@ model.tag_list”方法,它将分割逗号分隔的用户输入并制作单个标记。 我的“可标记”模型是一个video,我很好奇如何编写一个基本上像“tag_list”一样的方法? 例: …. 鉴于输入: “one, two, three”将构建三个标签作为@video的孩子。 @video.tags.each do |tag| puts tag.name end => one two three 编辑 我在Tag模型中非常喜欢这样,以保持forms混乱我的控制器。 也许作为自定义属性? 也许video模型更有意义? 我知道如何使自定义方法返回自定义数据,但不分配它。 一些研究指出了这种方式(尚未测试) video.rb def tag_list=value value.split(‘,’).each do |tag| self.tags.build(:name => tag).save end end

Controller#action中的NoMethodError – #User的未定义方法`keynote’:0x007fba0e32f760>

我正在构建一个具有Keynote模型和Story模型的应用程序(以及我用Devise实现的用户模型)。 主题演讲有许多故事和一个故事属于主题演讲。 我在创建新故事时遇到问题,我收到以下错误: StoriesController中的NoMethodError #create #User的未定义方法`keynote’:0x007fba0e32f760 该错误发生在stories_controller.rb的第18行 @story = @current_user.keynote.stories.build(params[:story]) 在create方法中。 这是我的stories_controller.rb的一部分 class StoriesController [:show, :index] def index @keynote = Keynote.find(params[:keynote_id]) @stories = @keynote.stories end def new @keynote = Keynote.find(params[:keynote_id]) @story = @keynote.stories.build end def create if user_signed_in? @keynote = Keynote.find(params[:keynote_id]) @story = @current_user.keynote.stories.build(params[:story]) if @story.save flash[:notice] = ‘Question submission succeeded’ redirect_to keynote_stories_path else render […]

Ruby on Rails – 在包含I18n的link_to调用中嵌入了额外的HTML

我试图在link_to调用中嵌入额外的HTML ,如此线程中所示在link_to调用中嵌入其他HTML 但是,我还想使用I18n。 所以不是这样的: <%= link_to ' Show’.html_safe, exercise_path(exercise), :class => ‘btn btn-small’ %> 我想用t(:show)或I18n.t(:show)代替上面例子中的硬编码Show 。 但是,我无法弄清楚正确的语法。 任何帮助将不胜感激。

Rails runner脚本无法正常工作

任何想法为什么这不起作用,当我尝试通过rails runner运行下面的代码时,我得到一个NoMethodError 。 也许我正在调用rails runner,对Rails来说不好意思! 档案位置: /app/scripts/data_import.rb 命令: rails runner -e development DataImport.say_hi 错误: undefined method `say_hi’ for DataImport:Class (NoMethodError) 码: class DataImport def say_hi puts “hi” end end

查询Activerecord HABTM关系以包含数组的所有元素

我有一个Forum和ForumTag关系。 我还有一个名为@tags的变量数组。 此数组包含一些ForumTags的名称。 我希望能够查询并查找具有该数组所有值的所有论坛。 我目前有: @forums = Forum.joines(:forum_tags).where(:forum_tags => {:name => @tags})。includes(:forum_tags).all 但是,这将返回arrays中至少具有一个值的所有论坛。

rails has_many setter应该设置条件,如果指定的话

这对我来说似乎是Rails中的一个错误,但我可能做的不多。 那么我怎样才能达到预期的行为呢? 假设我们有: class User “Friend”, :conditions => {:awesome => true} end 并执行代码: >> my_user.awesome_friends <‘jim’) 之后,当我检查这个朋友对象时,我看到填充了user_id字段。 但我也希望看到“真棒”这个“真棒”列,但事实并非如此。 此外,如果我从控制台执行以下操作: >> my_user.awesome_friends <‘jim’) >> my_user.awesome_friends = [#] # Quit and restart the console >> my_user.awesome_friends = [] 有什么想法吗? 我认为条件哈希可能是任意复杂的,使得集成到setter中是不可能的。 但在某种程度上,我们感觉默认情况下我们传递的条件是“:user_id => self.id”,并且设置已经设置,其他人不应该这样做吗? 谢谢,迈克 编辑: 我发现has_many有回调,所以我想我可能会定义这样的关系: has_many :awesome_friends, :class_name => “Friend”, :conditions => {:awesome => true}, :before_add […]

从csv文件导入数据时无法批量分配受保护的属性

我有一个导入数据的表单,如下所示: 这是我的导入动作: def import require ‘csv’ csv_text = File.read(params[:file].tempfile.to_path.to_s) csv = CSV.parse(csv_text, headers: true ) csv.each do |row| row = row.to_hash.with_indifferent_access Course.create(row.to_hash.symbolize_keys) end flash[:success] = “Successfully import data.” redirect_to courses_url end 但当我选择一个文件并在浏览器中按下Import按钮时,我收到错误: ActiveModel::MassAssignmentSecurity::Error in CoursesController#import Can’t mass-assign protected attributes: Name, Code 在我的Course模型中, name和code已经是attr_accessible: class Course < ActiveRecord::Base attr_accessible :code, :name end 我的代码出了什么问题? 更新 这是我的csv文件: name, […]

将“记住我”和复选框对齐在同一行(与Devise的CSS问题)

我正在使用Devise,复选框位于Remember Me下方。 这是jsfiddle上的HTML代码http://jsfiddle.net/icyborg7/8zxyz/ 这是标准设计代码 :boolean if devise_mapping.rememberable? %> “btn-info btn” %> 这是HTML输出(也可以在SO上粘贴) Remember me

在不同主机上预编译具有相同摘要的资产

是否可以使用相同的摘要在不同的主机(流量路由)上编译资产? 例如,如果我的Rails 3.2应用程序部署到2个不同的主机host1和host2,我想在host1和host2上使用相同的摘要application-34a9sadas1238023a8.css

如何解决“无法批量分配受保护的属性:translations_attributes”错误?

我正在使用Ruby on Rails(3.2.2), globalize3 (0.2.0)和batch_translations (0.1.2)ruby-gems。 我想解决使用batch_translations ruby​​-gem时产生的以下问题: ActiveModel::MassAssignmentSecurity::Error in Admin::ArticlesController#update Can’t mass-assign protected attributes: translations_attributes 在我的ROOT_RAILS/Gemfile文件中,我有: … gem ‘globalize3’ gem ‘batch_translations’ 在我的ROOT_RAILS/app/models/admin/article.rb文件中,我有: class Admin::Article < ActiveRecord::Base translates :title # This is needed to make the batch_translations to work. accepts_nested_attributes_for :translations … end 在我的ROOT_RAILS/app/views/admin/articles/_form.html.erb文件中,我有: admin_article_path) do |f| %> English translation: Italiano translation: <% # Note: […]