如何为特定的:动作使用不同的布局?

Ruby 1.8.7,Rails 2.3.11 我一直在尝试看起来就是我已经问过的答案了,但是对我来说都没有成功(可能是因为我对Rails相对较新并且没有正确理解它们)。 我正在尝试为模型(海报)创建一个适合打印的视图,可以在/ posters / print / 1访问。 如何让打印操作使用与索引,新建,编辑和显示不同的布局文件? 一个答案说render :layout => ‘otherlayout’ ,我在print controller方法中生成format.xml { render :layout => ‘print’, :xml => @poster } 。 当我刷新(清除缓存后)页面时,这没有任何改变。 另一个答案说 layout ‘layout’, :only => [:first_action, :second_action] layout ‘second_layout’, :only => [:third_action, :fourth_action] 我把它放在海报控制器文件的顶部,如下所示: layout ‘posters’, :only => [:show, :edit, :index] layout ‘print’, :only => [:print] 但似乎只使用后一行(显示,编辑和索引直接从他们自己的.html.erb文件呈现,而不是包含在海报布局中)。 […]

在Locails中将Locale变量推送到Partial 4.2

我有一部分可以将他们在Steam库中的游戏列表拉出来 它的基本视图源自current_user.player_steam_id – SQL中的一个字段。 最初这只是展示你现在的游戏很好,但我想用它做一些事情。 A)当您检查某人的个人资料时,您会看到他们的列表。 B)您可以使用用户ID进行搜索,以提取查询结果。 我最初的问题是使用(XXXXXX实际上是一个数字,所以我不对其进行字符串化(是吗?) ‘game_list’, :locals => {:header => “Welcome to His Page!”, :steamId => XXXXXXXXXX } %> 而且“欢迎来到他的页面!” 正在通过,但我遇到了很多问题:steamId渲染。 在局部视图中,我尝试使用 和:steamId current和:steamId是唯一不会破坏页面的两个,但它不会呈现任何内容。 我对此很陌生,所以试图解决这个问题,但我发现很多post都说我做得对。 我欢迎任何意见。 另外 – 由于我打算广泛使用它,我应该考虑将它变成控制器吗? 或者部分就足够了? (PS我通常是一个Node人,所以我试了很多调试+ console.log(steamId)来看看它是如何渲染的,但我没有在console.log中得到结果,而且调试没有做任何事情。你通常在RoR中调试这样的东西吗? 谢谢你的任何输入! 编辑: 附加信息: 这个问题部分是在局部。 通过将其修改为owned_games定义,并且播放器定义位于不同的行上,它已成功解析。 这只是一个不审查 – 我复制/粘贴的失败对我而言。 已解决的代码: This is my steam ID 但是,如果它从数据库中提取player_steam_id,我只能进行渲染。 例如,如果我有:steamId => 76561198017108025 它不起作用,但如果我有 :steamId […]

如何获取与我的url的最终参数匹配*的铁路路线?

我想允许用户在url中使用加密密码时自动登录。 我有以下url,我想与rails路由匹配: /attendants/update_player_status/game/1/maybe/user_hash/$2a$10$1kY8xvOjkqZJJJGWDd0q2Oeyl7kICSBDPTYzGhkJ6pZnE6YA/nJie url的后半部分可以有任何字符,比如*(即它可以有’/”$”*’等) 我的路线有效,但随后它会在参数中弹出“/”(如上所示): match ‘/attendants/update_player_status/game/:game_id/:status/user_hash/:user_hash’ => ‘attendants#update_player_status_using_hash’, :as => ‘update_player_status_using_hash’ 关于我应该做什么的任何建议? 一旦我正确地拉出参数,我将使用它来登录用户进入网站,并允许非常有限的访问。

使用Stripe的订阅表单未正确传递参数

我在我的Rails 4.2应用程序上收到以下错误。 我正在尝试使用Stripe设置订阅。 订阅属于业务和has_one计划。 在我看来,我在URL中传递了参数: http:// localhost:3000 / subscriptions / new?plan_id = 2&business_id = 1001 提交表单后,我收到以下错误,我的代码如下。 如果这是一个初学者问题,请原谅我。 订阅控制器 class SubscriptionsController e flash[:error] = e.message render :new end private def stripe_params params.permit :stripeEmail, :stripeToken end # Use callbacks to share common setup or constraints between actions. def set_subscription @subscription = Subscription.find(params[:id]) end # Never trust parameters […]

Error-Bundler无法找到gem“bundler”的兼容版本:在Heroku上推送项目时

$ git push heroku mail:master输入密钥’/c/Users/ManishKukreja/.ssh/id_rsa’的密码:总计0(delta 0),重用0(delta 0) Heroku receiving push Ruby/Rails app detected Installing dependencies using Bundler version 1.1.rc.7 Heroku receiving push Ruby/Rails app detected 使用Bundler版本1.1.rc.7安装依赖项运行:bundle install –without development:test –path vendor / bundle –binstubs bin /从http://rubygems.org/获取gem元数据……. Bundler找不到gem“bundler”的兼容版本:在Gemfile中:rails(= 3.0.1)ruby依赖于bundler(〜> 1.0.0)ruby当前Bundler版本:bundler(1.1.rc.7)这个Gemfile需要一个不同版本的Bundler。 也许您需要通过运行gem install bundler来更新Bundler? ! ! 无法通过Bundler安装gem。 而且,我的机器上已经有了捆绑器 Using rake (0.9.2.2) Using activesupport (3.0.1) Using builder (2.1.2) […]

不保存,没有错误消息

在表单提交时,它告诉我它已成功创建,但它没有显示任何已提交的数据。 数据库是空的。 它显示“空”值,并且在我应该能够编辑数据的实际屏幕上显示相同的值。 这是一个截图 更新:我认为问题是它正在发出GET请求,但我不知道如何修复它。 这是我点击提交时我的服务器屏幕截图 这是设置 在results_controller.rb的索引操作中,我有 def index @results = Result.all @blob = Sex.new //==@blob = Sex.new is the one I’m focussing on… respond_to do |format| format.html # index.html.erb format.xml { render :xml => @results } end end 在views / results / index中,我有表单 ` 1. solicitor exam was fixed?: 在sexes_controller.rb的创建动作中,我有 def create @sex […]

为某些资源操作启用SSL

我的设置:Rails 3.0.9,Ruby 1.9.2 我希望仅为项目的创建操作启用SSL,我该怎么做? 目前我有 resources :projects, :constraints => { :protocol => ‘https’ }, :only => :create resources :projects, :except => :create 我认为这不是很正确。 更新 我已经把它改成了 match ‘projects’ => ‘projects#create’, :constraints => { :protocol => ‘https’ }, :via => :post resources :projects, :except => :create 我认为这样更好但是还有更好的方法吗?

在使用date_select并在Rails中丢弃年份时按顺序保留日期?

我的应用拥有季节性产品的用户。 当用户选择产品时,我们允许他也选择产品的季节。 我们通过让他为每个产品选择开始日期和结束日期来实现这一目标。 我们使用date_select生成两组下拉菜单:一组用于开始日期,一组用于结束日期。 包括年份对我们的模型没有意义。 所以我们使用的选项: discard_year => true 要解释我们的问题,请考虑我们的产品是苹果。 供应商X每年从9月到1月运送苹果。 岁月与此无关,这就是我们使用discard_year => true 。 但是,虽然具体年份无关紧要,但从开始日期到结束日期的相对时间点是相关的。 这就是我们的问题出现的地方。 当你使用discard_year => true ,Rails确实在数据库中设置了一年,它只是没有出现在视图中。 Rails在我们的应用程序中将所有年份设置为0001。 回到我们的苹果示例,这意味着数据库现在认为用户已经选择了0001年1月到1月1月。由于多种原因,这对我们来说是一个问题。 要解决这个问题,我需要实现的逻辑如下: 如果season_start月/日在season_end月/日之前是数字,那么标准的Rails方法就可以了。 但是,如果season_start月/日在season_end月/日之后是数字,那么我需要动态更新数据库字段,使得season_end的年份等于season_start + 1的年份。例如,如果用户选择10月15日到1月15日,他的意图是0001年10月15日至2000年1月15日。我需要该应用程序来反映这一点。 我最好的猜测是我会创建一个自定义方法,在我的产品模型中作为after_save或after_update运行。 但我不确定如何做到这一点。 想法? 有没有人遇到过这个问题? 谢谢!

臭名昭着的AbstractController :: ActionNotFound – Devise + Rails

所以我已经阅读了如何解决这个问题: 自定义设计会话控制器的RSpec测试因AbstractController :: ActionNotFound失败 和 http://lostincode.net/blog/testing-devise-controllers 但我在哪个文件下添加这些更改是我的问题: 在我的rspec文件夹下 registrations_controller 我试过这个 before :each do request.env[‘devise.mapping’] = Devise.mappings[:user] end require ‘spec_helper’ describe RegistrationsController do describe “GET ‘edit'” do it “should be successful” do get ‘edit’ response.should be_success end end end 哪个不起作用,任何帮助改变特定文件以使这项工作将不胜感激。 编辑 所以我也尝试过 – https://github.com/plataformatec/devise/wiki/How-To:-Controllers-and-Views-tests-with-Rails-3-(and-rspec) 所以我创建了一个带有spec / support的文件夹,并创建了一个名为controllers_macros.rb的文件 module ControllerMacros def login_admin before(:each) do @request.env[“devise.mapping”] = Devise.mappings[:admin] […]

来自Rails 4中动态表单参数的sti类型

我希望将一个sti基类作为参数传递,然后能够从该查询中调用所有子类。 br /这是我的STI课程和子课程。 class LivingThing < ActiveRecord::Base end class Animal < LivingThing end class Plant < LivingThing end class Fungus < LivingThing end class Cat < Animal end class Dog < Animal end 我想通过一个名为“living_thing_type”的渲染表单传递一个参数,所以我可以这样做: living_things = living_thing_type.all 但即使我尝试这个 living_thing_type.constantize.all 我收到此错误: undefined method `all’ for “Animal”:String