Tag: 模型 视图 控制器

Rails 3链接或在控制器中执行操作的按钮

在RoR 3中,我只想要一个链接/按钮来激活控制器中的某些动作/方法。 具体来说,如果我点击页面上的“update_specs”链接,它应该转到我的产品控制器中的“update_specs”方法。 我在这个网站上找到了建议: link_to “Update Specs”, :controller => :products, :action => :update_specs 但是,当我点击此链接时,我收到以下路由错误: 路由错误没有路由匹配{:action =>“update_specs”,:controller =>“products”} 我已经阅读了路由但我不明白为什么如果可以通过资源访问所有其他方法,我必须要路由此方法:产品。

Rails可选/:语言环境路由

我正在尝试为我的rails应用程序设置路由系统,允许将可选路由(/:locale)允许到网站的基础。 所以或多或少: / en / home /将转到与/ home / / en / people / – > / people /相同的页面 我唯一的问题是在路由配置中设置它。

在Ruby on Rails中为post添加标签

我正在使用Scaffolding在Rails中创建一个博客。 我想在StackOverflow和WordPress上的每个post上添加一个’tags’字段。 我可以用字符串类型( rails generate scaffold post title:string body:text tags:string )然后以逗号分隔,但这不是好习惯,因为我希望读者按标签浏览(例如/tags/web20或/tags/lol )。 我怎样才能做到这一点?

在一个动作中渲染不同的视图

我想在我的rails应用程序中为同一post提供两种视图。 例如 – 在登录用户可以更新和编辑post的一个用户中,任何用户都可以只查看它并对其进行评论或选择它。 我该怎么办呢? 我需要一个单独的课吗? 我知道我需要一个单独的视图,但模型和控制器怎么样?

如何在MVC下创建简洁的RESTful向导?

我尝试在构建应用程序时尽可能保持RESTful,但有一点我不知道如何创建向导类型的工作流程,RESTful和简洁。 例如,采用多页注册流程。 选项1:我可以为每个步骤创建一个控制器,并在用户进入该步骤(或返回到该步骤)时调用new或edit。 我以step1_controller,step2_controller等结束… 选项2:我可以使用参数,会话变量,状态机 – 无论如何创建一个控制器并跟踪它们在注册过程中的位置。 所以我有signup_controller / step?id = 1 第一个选项是严格的REST,但不是很简洁,最后是一些额外的控制器。 第二个选项更简洁,但打破REST,我愿意这样做,但我不会掉以轻心。 有更好的选择吗? 我在rails上使用ruby,但是这个问题适用于其他MVC实现,比如ASP.NET MVC

Rails:在多个控制器操作中设置公共实例变量

应该如何让几个不同的控制器动作设置一个公共实例变量,以便在模板 运行后 使用 。 换句话说,我希望这在我的application_controller中工作。 class ApplicationController < ActionController::Base after_filter :set_something_common def set_something_common # All controllers' actions have queried the DB and set @foo for me… @bar = some_calculation_on(@foo) # … and all templates expect @bar to bet set. end end 这不起作用,因为after_filter在渲染后运行。 精细。 但是正确的模式是什么? 同样, set_something_common在操作之后运行是很重要的,因为这些操作会执行特定于案例的操作; 但他们都设置了@foo 。 我的想法似乎都不理想: 将set_something_common()调用到需要它的每个操作的底部。 将所有控制器的特定于案例的代码重构为case_specific_code()并强制它们按顺序运行: before_filter :case_specific_code, :set_something_common 子类application_controller并重新定义index方法。 […]

如何在Rails中创建类别

我正在尝试将类别添加到我的Rails应用程序,但不太知道如何执行此操作。 我有很多针(图像),并希望用户能够在这些针上分配一个类别。 ASSIGN不会创建,编辑或删除类别,只需为其Pin选择一个。 这意味着,当用户上传图钉时,他可以从下拉列表中选择一个类别。 然后,另一个用户可以从菜单中选择一个类别,并且仅列出此类别中的引脚。 我该怎么做呢? 从哪儿开始 ? 谢谢

如何在Rails中将参数传递给委托方法

我想有一个仪表板来显示多个模型的摘要,我使用Presenter实现它而没有自己的数据。 我使用ActiveModel类(没有数据表): class Dashboard attr_accessor :user_id def initialize(id) self.user_id = id end delegate :username, :password, :to => :user delegate :address, :to => :account delegate :friends, :to => :friendship end 通过委托,我希望能够调用Dashboard.address并返回Account.find_by_user_id(Dashboard.user_id).address 。 如果Dashboard是一个ActiveRecord类,那么我可以声明Dashboard#belongs_to :account和delegate将自动工作(即,Account会知道它应该返回来自帐户的地址属性, user_id等于Dashboard实例中的to user_id )。 但Dashboard不是ActiveRecord类,所以我不能声明belongs_to 。 我需要另一种方法来告诉Account查找正确的记录。 有没有办法克服这个问题? (我知道我可以伪造Dashboard以获得一个空表,或者我可以将User的实例方法重写为带有参数的类方法。但这些解决方案都是hacks)。 谢谢。

什么是Restful Routing?

我熟悉Ruby On Rails的路由系统,以及Code Igniter和PhpCake如何路由东西,但是除了拥有一个基于目录结构提供路由的集中位置之外,还有更多内容吗? 像这样 controller/action/id/ Admin/editUser/22

动态URL – > Rails中路由的控制器映射

我希望能够根据数据库中的信息动态地将URL映射到控制器。 我正在寻找function相当于此的东西(假设View模型): map.route ‘/:view_name’, :controller => lambda { View.find_by_name(params[:view_name]).controller } 其他人建议动态重建路由 ,但这对我不起作用,因为可能有数千个视图映射到同一个Controller