Tag: 模型 视图 控制器

路由错误 – 没有路由匹配 for new

我收到路由错误,我找不到问题所在,我正在创建一个简单的CRUD并使用create方法遇到麻烦。 错误 没有路线匹配[POST]“/ usuarios / new” 调节器 def new @usuario = Usuarios.new end def create @usuario = Usuarios.new(params[:usuario]) if @usuario.save redirect_to usuario_path, :notice => “Cadastrado realizado com sucesso!” else render “new” end end new.html.erb Add new user

在Ruby on Rails中的模型中使用“current_user”

我正在使用Devise,它在助手中提供了“current_user”方法,因此我可以在视图和控制器中使用。 但是现在我想访问模型中的“current_user”方法。 这就是我现在在控制器中所拥有的。 def create set_email_address(params[:email_address]) Comment.new(params[:content], set_email_address) # [snip] end private def set_email_address(param_email) if current_user @email_address = current_user.email else @email_address = param_email end end 我想将“set_email_address”移动到一个模型,因为我认为这是一个逻辑,应该交给模型。 我打算用一个Rails回调来连接这个方法。

我应该将自定义方法从控制器移动到模型吗?

假设我有一个Product model和ProductsController。 控制器具有所有标准的CRUD方法,产品可以进行各种validation等。 这是一个问题。 我有几个自定义非常复杂的动作,也需要以多种格式(json,html,xml,csv,pdf等)进行响应。 业务逻辑原因超出了问题的范围。 让我们这样做是必须的。 我也使用了InheritedResources gem,但我不认为这个问题很重要。 例如(这是一个模拟应用程序,它非常简化 – 我删除了各种if else语句和循环和本地化等): class ProductController 5 @po = LegacyOrder.create_po if @po if @order.save format.html{ render :check_stock_using_legacy_identifier_and_create_a_unique_po_number_and_place_an_order, flash: {success: “Wow! Input was good!”}} format.json{ render status: 400, json: {status: :success, message: “Order created”}} else format.html{ render :check_stock_using_legacy_identifier_and_create_a_unique_po_number_and_place_an_order, flash: {error: “Can’t create order, some validations failed”}} format.json{ […]

获取当前操作的路径/ url,包括查询字符串? (导轨)

简单的问题 – 如何获取包含查询字符串的当前操作的路径或完整URL? 我希望将它保存到会话变量,如下所示: def show @thingy = Thingy.find(params[:id]) session[:some_var] = current_url … end 目前我正在做以下事情,但它似乎有点笨拙(特别是单独指定查询字符串参数): def show @thingy = Thingy.find(params[:id]) session[:some_var] = thingy_path(@thingy, :q1 => params[:q1], :q2 => params[:q2]) … end

将值从视图传递到rails上的控制器ruby

这是我的控制器: def addcar @car = Car.new(params[:car]) render :action => “list” end 这是我的看法: “car”, :action => “addcar”, :car => cell.to_s %> 在link_to语句中,我想将cell.to_s传递给控制器​​。 我该怎么办? cell.to_s只是一个字符串,但我希望它是汽车对象的名称( car.Name )

Rails lib目录

关于lib目录的问题。 使用lib目录有哪些好的做法? 什么时候应该在app / models或app / helpers上使用? 并且有些相关如何让Rails 3包含lib目录中的文件? 谢谢

用多种模型设计视图

我有两个模型,管理员和用户。 我在devise.rb中设置了scoped views = true。 我还生成了两组不同的设计视图。 出于某种原因,当我点击编辑管理员注册时,它给了我一个错误 NoMethodError in Aregistrations#edit undefined method `email’ for nil:NilClass 它强调了这一点: 并指向“app / views / devise / registrations / edit.html.erb” 在我的“config / initializer / devise.rb”文件中,它具有: config.scoped_views = true 在我的“config / routes.rb”文件中 devise_for :admins, :controllers => {:registrations => “aregistrations”} devise_for :users, :controllers => {:registrations => “registrations”}, :path_prefix => ‘d’ resources :users, […]

如何在适度大的Rails应用程序中组织控制器?

我正在研究一个有很多相关模型的应用程序,并希望听到一些关于如何最好地组织控制器的意见。 以下是我一直在考虑的一些选项: 1)命名空间控制器。 因此,例如,有一个控制器/管理目录和一个控制器/公共目录。 这似乎对组织很有吸引力,但也因为单个资源通常可能具有明显属于不同目录的动作(例如,show动作是公共的而创建动作是admin)。 所以这意味着将我的一些资源分解为两个独立的控制器 – 一个是公共的,一个是管理员。 看起来很糟糕。 2)创建嵌套资源。 我只是偶尔使用嵌套资源,所以当我最好嵌套资源而不是简单地通过params明确地传递你需要的数据时,我并不总是清楚。 有没有人有一些关于如何最好地使用嵌套资源的建议/示例? 什么时候是个好主意? 什么时候是矫枉过正? 3)只保留默认的脚手架控制器。 在需要时创建新的集合/成员操作,并在filter之前使用以在每个控制器中设置权限。 这看起来最吸引人,因为它可以提前保持简单。 但是,由于一些控制器可能会因为几个新动作而开始膨胀,因此我对于线路变得混乱感到紧张。 如果有任何有大型应用程序设计经验的人可以在这里提供一些指导,那就非常感谢。

如何在函数式编程语言中实现Rails类型webapp中的“模型”?

在MVC Web开发框架(如Ruby on Rails,Django和CakePHP)中,HTTP请求被路由到控制器,控制器获取通常持久存储到后端数据库存储的对象。 这些对象代表用户,博客post等内容,并且通常在其方法中包含用于权限,获取和/或变异其他对象,validation等的逻辑。 这些框架都非常面向对象。 我最近一直在阅读关于函数式编程的文章,它似乎带来了诸如可测试性,简洁性,模块性等巨大的好处。然而,我见过的函数式编程的大多数例子都实现了诸如quicksort或fibonnacci序列之类的琐碎function,而不是复杂的webapps。 我看了几个“function”的Web框架,他们似乎都很好地实现了视图和控制器,但很大程度上跳过了整个“模型”和“持久性”部分。 (我正在谈论更多像Compojure这样的框架,这些框架应该是纯粹的function,而不是一些方便似乎使用Scala的OO部分用于模型的东西 – 但如果我在这里错了,请纠正我。) 我还没有看到如何使用函数式编程来提供OO编程提供的隐喻,即表映射到对象,以及对象可以提供强大的封装逻辑(如权限和validation)的方法。 此外,使用SQL查询来保存数据的整个概念似乎违反了整个“副作用”概念。 有人可以解释如何在function编程的Web框架中实现“模型”层吗?

元内容在MVC中存在于何处?

我一直在考虑MVC中的元内容,特别是页面标题和元描述(这对于指导Google在搜索结果中显示的代码段非常有用)。 我不能确定这应该在哪里生活。 根据(对于UGC应用程序)读者与内容的互动方式,通常会有一些逻辑。 我无法确定在视图层或控制器中是否更好地构造了此元内容。 它几乎肯定不会存在于模型中,因为它特定于数据的特定视图,但是当我的第一直觉是将它放在视图中时我觉得它可能更好地被抽象化。 我对其他人采取的方法很感兴趣。