Rails:将参数从视图传递到控制器

我在轨道中有以下型号: class Task true end class Project < ActiveRecord::Base attr_accessible :name has_many :tasks end 我有一个列出可用项目的视图单击任何项​​目我要打开一个列出所单击项目中所有任务的页面。 现在的问题是如何传递项目ID? 我还希望项目ID在之后的许多控制器中可见,所以我认为我应该使用会话变量或类似的东西?

转换PDF以在任何浏览器中查看

我目前使用PDF-to-Flash来允许用户翻阅上传的PDF页面。 但是,有很多人使用iPhone / iPad,我想将其转换为适用于任何浏览器的解决方案。 该站点是在Ruby on Rails中开发的,我已经研究过使用pdf-toolkit和rmagick将PDF转换为图像,但这还不够,因为我希望页面随浏览器窗口缩放 – 因为我需要SVG不是一个选项它与IE6一起工作;) 有任何想法吗? 谢谢, G

如何以及在何处处理相关记录的更新过程?

我正在使用Ruby on Rails 4,我想通过update_attributes方法正确处理相关记录的更新和创建过程。 也就是说,我有以下几点: # Model class Article < ActiveRecord::Base has_many :categories accepts_nested_attributes_for :categories end # Controller class ArticlesController [:name, …]) end end # Logger for the update request Started PATCH “/articles/6” Processing by ArticlesController#update Parameters: {“utf8″=>”✓”, “article”=>{“title”=>”Sample title”, “categories_attributes”=>{“0″=>{“name”=>”Sample Category 1”, “…”=>”…”}, “1”=>{“name”=>”Sample Category 2”, “…”=>”…”}, : “…” => {…}} … 该问题与Rails处理更新数据库中相关记录的方式有关,在我的情况下,通过@article对象更新类别时:提交数据时触发update操作,并将参数传递给update_attributes方法(如在上面的记录器中显示)然后Rails在数据库中创建新的类别记录,一个用于散列categories_attributes存在的每个元素。 但是, […]

ruby – 文件私有方法

在ruby中,有没有办法定义文件(或模块)中每个类可见的方法,而不是需要文件的文件? 相关但不完全相同:我们可以重新定义一个方法(例如来自标准库类的方法),这样重新定义只在当前文件中可见吗? 所有其他文件应查看原始定义。

before_filter set_locale除了控制器

我的routes.rb MyApp::Application.routes.draw do scope ‘(:locale)’ do #all resources here end namespace :blog do resources :posts, :only => [:index, :show] end end 我的application_controller.rb class ApplicationController < ActionController::Base # # before_filter :set_locale private def default_url_options(options = {}) {locale: I18n.locale} end def set_locale #code for detect locale here end # # end scope ‘(:locale)’内的所有资源都正常工作。 但是我不想使用带有namespace :blog语言环境namespace :blog ,当我尝试点击博客链接时,我可以看到这个urlhttp://localhost:3000/blog/posts?locale=en […]

表单中的Button_to标记关闭表单

我目前正在使用ruby on rails 3中的表单。因此,在我的项目表单中,我有一个按钮,可以在此项目中签署用户。 然而,奇怪的是, button_to标签关闭了我的整个表单,我不能再使用我的提交按钮了。 所以我尝试了很多,但我不明白为什么会这样。 所以这是我的forms: ‘control-label’, style: ‘margin-bottom: 20px’ %> ‘btn btn-primary’ %> t(“helpers.links.cancel”)), projects_path, :class => ‘btn btn-default’ %> 在我看来,这个代码看起来很好,因为所有标签都完全关闭。 但是,我认为使用button_to时可能会有一些魔力,所以也许有人知道更好的方法来做我想做的事情。 谢谢!

无法让RVM切换ruby

如何将我的鱼壳明确指向RVM的ruby版本? 我正在使用鱼壳,我安装了RVM。 但是,无论我做什么,RVM都不想切换ruby。 rvm rubies =* ruby-2.3.0 [ x86_64 ] > ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] > rvm use ruby-2.3.0 Using /Users/…/.rvm/gems/ruby-2.3.0 > ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] 我的config.fish文件包含:rvm default 我在这做错了什么? 更新: > which ruby /usr/bin/ruby which -a ruby /usr/bin/ruby echo $PATH /usr/local/bin /usr/bin /bin /usr/sbin /sbin 似乎路径可能是错误的,但我不确定并且不确定如何纠正它。 编辑2: […]

Ruby:如何从另一个文件导入变量?

我正在尝试创建一个与罗盘一起使用的本地配置文件,以便我们可以在开发人员的机器上处理不同的导入路径。 到目前为止,我已经尝试在exception块中导入文件,如果它不存在,那么进一步使用该变量: local_config.rb VENV_FOLDER = ‘venv’ config.rb VENV_FOLDER = ‘.’ begin require ‘local_config.rb’ rescue LoadError end puts VENV_FOLDER 通常我是Python开发人员所以我希望导入将VENV_FOLDER的值VENV_FOLDER为venv ,但它仍然是. 然后。 有没有办法以这样的方式导入local_config.rb ,它会覆盖VENV_FOLDER的值?

脚本驱动的Google自动化使用ruby python perl java或其他方式

背景: 在过去一年左右的时间里,同事Adam一直在使用谷歌精简处理数据库下载取得了很大的成功,但亚当得到了一份新的工作机会,因此他在谷歌精炼中所做的所有工作和专业知识都将消失。 Ben希望Adam将他所做的所有工作都包括在Google中,这样办公室的用户仍然可以从他的工作中受益,而不必知道如何使用Google自我改进。 (即,将其作为批处理过程的一部分运行,您将输入文件指定为参数,结果得到“精炼”输出)。 题: 有没有人使用Google精简版的免提批量处理经验,用户只需要指定:1)输入文件; 2)转换设置文件(或Google精炼的转换规则)? 题: 如果这不可用,那么可以使用相同或类似的工具来完成与Google精简版相近的工作。

从function编程的角度来看,Rubyfilter是不同类型的?

在Ruby中,有一些过滤函数会产生与您开始时不同的类型。 例如,如果你这样做 {a: 2, b: 0}.find_all{|key, value| value.zero?} # Use Hash[new_array] to turn it into a hash 你最终得到一组键和值,而不是另一个哈希。 如果你这样做 str = “happydays” all_indexes = [1, 2, 7, 8] str.each_char.reject.with_index{|char, index| all_indexes.include?(index)} # Use .join to turn it into a string 你最终得到一个字符数组,而不是一个字符串。 从函数式编程的角度来看这是正常的,还是仅仅表明Ruby没有完美地实现函数式编程范式?