Ruby on Rails:条件显示

lokaqttq  于 2022-11-22  发布在  Ruby
关注(0)|答案(1)|浏览(156)

我刚刚开始使用Ruby on Rails,我有一个用例,需要将Json响应从回调Map到一个现有的Ruby模型中。但是,有几个字段不能直接Map。我有一个资源类,如下所示:

class SomeClassResource
  attr_reader :field

def initialize(attrs = {})
  @field = attrs['some_other_field']
end

然后我有一个方法,如果some_other_field与特定字符串匹配,则返回true,或者返回false,如下所示:

def some_method(value)
    value == 'aString' ? true : false
  end

然后,我需要在视图中显示true或false。正确的方法是什么?
谢谢你

ecbunoof

ecbunoof1#

首先,您应该将方法简化为:

# app/models/some_class_resource.rb
def some_method(value)
  value == 'aString'
end

然后,要在视图中显示它,您可能希望首先在控制器中获取值(进入视图范围内的示例变量):

# app/controllers/some_class_resources_controller.rb
class SomeClassResourcesController << ApplicationController
  def show
    resource       = SomeClassResource.new
    @true_or_false = resource.some_value('aString')
  end
end

然后,您将需要包含以下内容的视图:

# app/views/some_class_resources/show.html.erb
<h1>My view</h1>
Was it true? <%= @true_or_false %>

您还需要在路由文件中包含相应的show路由。

# config/routes.rb
resources :some_class_resources, only: [:show]

相关问题