小编Mau*_*uiz的帖子

Rails before_filter用于控制器中的特定操作

  def new
    before_filter  do 
      redirect_to "/" unless current_admin || current_company
      flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company

     end
    CODE CODE CODE
   end

  def edit
    before_filter  do 
      redirect_to "/" unless current_admin.id = 5
      flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company

     end
    CODE CODE CODE
   end
Run Code Online (Sandbox Code Playgroud)

这是我想要做的代码,但我无法弄清楚如何正确地做到这一点.我想要实现的是为我的每个动作应用before_filter规则.因此,或许用户可以存取权限去INDEX行动,但不会在修改动作等我知道的before_filter方法运行一个单一的时间,我不能跑4个before_filters,我只是给的,因为我的英语不好一些参考.

您必须知道我正在使用Devise作为current_admin和current_company方法.我需要应用不同的过滤器(如果是admin或者如果是company.id = X)和其他操作.

在此先感谢,我非常喜欢这里.任何帮助将不胜感激.

ruby ruby-on-rails before-filter devise ruby-on-rails-3.1

32
推荐指数
1
解决办法
3万
查看次数

从Ruby on Rails 3中的另一个控制器渲染表单

好吧,问题是尝试从控制器呈现一个表单来创建一个新条目..为此我调用脚手架创建附带的默认表单我试图使它像这样:

<%= render :partial => 'contactos/form'  %> 
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

undefined method 'model_name' for NilClass:Class

有没有办法只从视图本身渲染?

如果没有...我应该将哪些参数添加到控制器?

现在我只有以下代码:

Class DisplayController < ApplicationController
     def index
        @contactos = Contacto.all
     end
end
Run Code Online (Sandbox Code Playgroud)

*这是视图控制器,而不是我的脚手架中具有创建更新和编辑功能的视图控制器

好的,我做了一个非常大的研究,但没有答案可以解决我的问题.(这是我第一次提出问题,提前抱歉我可以犯的任何错误)

model-view-controller ruby-on-rails scaffolding ruby-on-rails-3.1

5
推荐指数
1
解决办法
5962
查看次数

通过 CNContactViewController 显示时,联系人缺少一些必需的关键描述符

尝试在给定的 tableView 中使用预构建的 UI 显示联系人,当用户选择要显示的联系人时,会出现以下错误:

CNPropertyNotFetchedException',原因:'联系人 0x7fded8ee6f40 缺少一些必需的密钥描述符:[CNContactViewController descriptorForRequiredKeys]>

我已经尝试通过这种方法解决:Contact is Missing some of the required key detectors in ios

所以我的联系人数组创建如下:

  func searchContactDataBaseOnName(name: String) {
        results.removeAll()

        let predicate = CNContact.predicateForContactsMatchingName(name)
        //Fetch Contacts Information like givenName and familyName
        let keysToFetch = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactViewController.descriptorForRequiredKeys()]

        let store = CNContactStore()        
        do {
            let contacts = try store.unifiedContactsMatchingPredicate(predicate,
                keysToFetch: keysToFetch)                
            for contact in contacts {
                self.results.append(contact)
            }
            tableContacts.reloadData()
        }
        catch{
            print("Can't Search Contact Data")
        }
    }
Run Code Online (Sandbox Code Playgroud)

当用户点击行索引时,我尝试通过执行以下操作来显示:

func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) …
Run Code Online (Sandbox Code Playgroud)

iphone xcode ios swift

4
推荐指数
1
解决办法
1853
查看次数

在Rails中使用`JSON.decode`的结果

所以我在我的控制器中有一个动作get_response来执行API:

  def memeapi
    require "net/http"
    require "uri"

    @meme = Meme.new(params[:meme])

    url = "http://version1.api.memegenerator.net/Instance_Create?username=apigen&password=SECRET&languageCode=en&generatorID=#{@meme.memeid}&imageID=#{@meme.imgid}&text0=#{@meme.text0}&text1=#{@meme.text1}"
    resp = Net::HTTP.get_response(URI.parse(url))
    data = resp.body
    # I want to convert it to the Rails data structure - a hash
    result = ActiveSupport::JSON.decode(data)


  end
Run Code Online (Sandbox Code Playgroud)

好的,但现在我想要取回信息,用它来创建另一个对象,但我甚至无法格式化我得到的信息,任何人都可以告诉我我做错了什么,我错过了什么?

我希望能够从get_response... 获取信息...谢谢.

这是JSON结构

{"success":true,"result":{"generatorID":45,"displayName":"Insanity Wolf","urlName":"Insanity-Wolf","totalVotesScore":0,"imageUrl":"/cache/images/400x/0/0/20.jpg","instanceID":13226270,"text0":"push","text1":null,"instanceImageUrl":"/cache/instances/400x/12/12916/13226270.jpg","instanceUrl":"http://memegenerator.net/instance/13226270"}}
Run Code Online (Sandbox Code Playgroud)

我不想保存所有的字段btw ...

ruby json get ruby-on-rails

2
推荐指数
1
解决办法
1277
查看次数